我试图理解这个 javascript 正则表达式。
谁能给我一个关于这个正则表达式部分的解释?
location.href.match(/^http:\/\/(www\.)?example.com/i)
我试图理解这个 javascript 正则表达式。
谁能给我一个关于这个正则表达式部分的解释?
location.href.match(/^http:\/\/(www\.)?example.com/i)
让我们把它分成几部分:
^http:\/\/
= 字符串必须以 . 开头http://
。反斜杠在那里,因为如果他们不这样做,斜杠将结束正则表达式模式。
(www\.)?
= 如果存在则匹配www.
(这就是问号的用途)
example.com
= 字符串后面必须跟example.com
i
= 不区分大小写
所以这些是可能的匹配:
http://example.com
http://www.example.com
http://www.EXAMPLE.COM
http://www.example.com/some/page/
不幸的是,正则表达式与 HTTPS 协议不匹配。我们可以使用与www.
使用问号相同的方法:
/^http(s)?:\/\/(www\.)?example.com/i
^ - start of line
http: - http:
\/\/ - //
(www\.)? - www. 0 or 1 time
example.com - example.com
该i
标志表示整个表达式不区分大小写,因此HTTP://WWW.EXAMPLE.COM
也将匹配。
/^http:\/\/(www\.)?example.com/i
1) ^ - carret (matches start of line / string)
2) http: - matches the actual 'http:' string
3) \/\/ - matches // (needs escaping with \)
4) (www\.)? - can contain or not the string 'www.' (? = 0 or 1 times)
5) example.com - matches the actual 'example.com' string
6) trailing i - case insensitive
正则表达式:
/^http:\/\/(www\.)?example.com/i
As explained in javascript the regexp is in the forme (http://www.w3schools.com/js/js_obj_regexp.asp) :
/pattern/modifiers
So the pattern :
^http:\/\/(www\.)?example.com
^
start with
http:\/\/
'http://' with the slashes escaped
(www\.)?
0 or 1 time 'www.'
example.com
'example', any char exept newline, 'com'
if you want 'example.com' only, use example\.com
The modifier :
i
case insensitive