为什么正则表达式对5-n www做出反应?

时间:2016-06-08 09:10:56

标签: javascript regex

我有这样的正则表达式:

/^(?!((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?))/

当我输入: www.test.com - 它找不到任何东西(应该是)

当我输入: aaaaa - 它有效(这是真的)

但是为什么当我输入:

wwwww - 我的正则表达式无效? (我的意思是它不匹配正则表达式)

我的正则表达式中我做错了什么?

2 个答案:

答案 0 :(得分:0)

看起来您正在尝试构建URI正则表达式。我可以在这里链接一个足够好的版本(我不会使用这个版本,但它可能适合你):

/^(?:(\w[\w\d+.-]+):\/\/)?(?:(.+?):(.+)@)?(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}|[^#:\/\?\s]+)(?::(\d+))?\/?(\/(?:[^#\/\?\s]+\/)*[^#\/\?\s]+\/?)?(?:\?((?:[^#=\/\s]+=[^&;#\/\s]+[&;]?)+))?(?:#(.+))?$/g

http://regexr.com/3cmin

但我建议你看看这些 https://mathiasbynens.be/demo/url-regex

http://jmrware.com/articles/2009/uri_regexp/URI_regex.html

Regular expression to match generic URL

URI的官方标准是RFC-3986

否则,只需使用regexr.com调试正则表达式,然后使用regex101.com进行探索。

如上所述,你没有逃脱。之后www。你的正则表达式也是无限的,因为它可以匹配零个字符。你需要在最后放一个$来表示比赛结束。而且你正在将你的正则表达式转变为直接前瞻。

答案 1 :(得分:0)

我想你忘了逃避www之后的那段时间。尝试将www.替换为www\.