Javascript URL正则表达式匹配端口和破折号

Javascript URL正则表达式匹配端口和破折号,javascript,regex,Javascript,Regex,我有这个url正则表达式,它几乎匹配我需要的所有东西(包括端口),但不包括dash 正则表达式: /^(http|https):\/\/\w+(\.\w+)*(:[0-9]+)?\/?(\/[.\w]*)*$/ 我想加入dash的可能性,但我没有做到这一点。 我试图更改。\w到-\w。但它似乎不起作用 有人知道如何在上面加上dash吗? 谢谢。破折号需要在正则表达式中转义:\-,因为它们可以以以下语法出现:[0-9]您可以这样更改模式(我已删除所有捕获组): 但请记住,URL语法可能更复杂。请

我有这个url正则表达式,它几乎匹配我需要的所有东西(包括端口),但不包括dash

正则表达式:

/^(http|https):\/\/\w+(\.\w+)*(:[0-9]+)?\/?(\/[.\w]*)*$/
我想加入dash的可能性,但我没有做到这一点。 我试图更改。\w到-\w。但它似乎不起作用

有人知道如何在上面加上dash吗?
谢谢。

破折号需要在正则表达式中转义:
\-
,因为它们可以以以下语法出现:
[0-9]
您可以这样更改模式(我已删除所有捕获组):


但请记住,URL语法可能更复杂。

请发布您迄今为止尝试过的示例输入和示例输出。它只需要在字符类中转义,第一个或最后一个位置除外。
/^https?:\/\/\w+(?:[.-]\w+)*(?::[0-9]+)?(?:\/\w+(?:[\/.-]\w+)*)?\/?$/