【发布时间】:2017-10-05 07:07:58
【问题描述】:
我在 JS 中有这个 RegExp,我正在使用 .test() 方法来验证 url:
new RegExp(/^((https|http):\/\/www\.)?(www\.)?[a-z0-9_-]+\.[a-z]+(\/)?(\/[a-z0-9]+(\.(php|html|asp|aspx))?)?$/i)
我想要一个可以验证此类 url 的正则表达式(注意 http 和 https 之类的东西):
https://www.page.com/about.php
https://www.page.com/about
https://www.page.com/
www.page.com
page.com
page-10.com
1234.com
当我尝试这些网址时,此 RegExp 有效,除非我尝试此网址:
www.page
它认为那个url是真的,我不知道为什么......
我的正则表达式的第一部分说:网址可以有 https|http://www. 或 www. 在开头或没有。
/^((https|http):\/\/www\.)?(www\.)?
第二部分说:在第一部分之后会有字母,数字,一些符号+ 一个点(我认为这是我的错误的来源。为什么它没有'不认识点?)+更多字母,结果可能类似于 page-10.com
[a-z0-9_-]+\.[a-z]+
第三部分是可选的,它允许使用斜杠和扩展名,如 page.com /about.php:
(\/)?(\/[a-z0-9]+(\.(php|html|asp|aspx))?)?$
问题:
在第二部分中,当我说:\. 时,我期望一个点,但它不识别它,我该如何明确并要求它?
【问题讨论】:
-
这部分正则表达式
[a-z0-9_-]+\.[a-z]+匹配www.page,在这种情况下,正则表达式的其余部分是可选的 -
这可能会有所帮助:stackoverflow.com/questions/161738/…
-
stackoverflow.com/questions/161738/… 规范 URL 验证正则表达式。您需要特定的 URL 来验证吗?
标签: javascript regex