Javascript URL模式匹配问题,+;赛后
我正在将存储的URL与当前URL进行匹配,但有一点问题-当与URL本身进行匹配时,正则表达式可以正常工作,但出于某种原因,所有子目录也会匹配(当然,当我只需要直接匹配时) 假设用户存储Javascript URL模式匹配问题,+;赛后,javascript,regex,url-parsing,Javascript,Regex,Url Parsing,我正在将存储的URL与当前URL进行匹配,但有一点问题-当与URL本身进行匹配时,正则表达式可以正常工作,但出于某种原因,所有子目录也会匹配(当然,当我只需要直接匹配时) 假设用户存储www.facebook.com,则这两个http://www.facebook.com和https://www.facebook.com确实如此 问题是它还匹配子目录,如https://www.facebook.com/events/upcoming等 例如,正则表达式: /.+:\/\/www\.faceboo
www.facebook.com
,则这两个http://www.facebook.com
和https://www.facebook.com
确实如此
问题是它还匹配子目录,如https://www.facebook.com/events/upcoming
等
例如,正则表达式:
/.+:\/\/www\.facebook\.com/
符合以下条件:
https://www.facebook.com/events/upcoming
什么时候应该匹配
http://www.facebook.com/
https://www.facebook.com/
如何修复这个似乎已损坏的正则表达式?放置一个结束标记
$
,例如:
/.+:\/\/www\.facebook\.com\/$/
但实际上也应该有一个开始标记,比如:
/^https?:\/\/www\.facebook\.com\/$/
此外,如果要匹配当前域,还可以只匹配
location.host
,而不是location.href
尝试在正则表达式末尾添加$。它是字符串结尾的符号。如果您对要匹配的内容非常明确,为什么不在RegExp中反映出来呢
- http或https
- www.m。或者没有子域
- facebook.com
编辑以包含可选的尾随反斜杠为什么不添加字符串的
结尾($)
。?您好,如果美元符号为空或尾随/,它是否有效?例如,我当然希望www.facebook.com的目标与www.facebook.com/相同,但与www.facebook.com/events有所不同。美元是绝对的底线。你可以完全按照你说的去做。$嗨,如果美元符号不是空的,就是尾随的,美元符号有效吗?例如,我当然希望www.facebook.com的目标与www.facebook.com/相同,但不同于www.facebook.com/events之类的东西?非常感谢在$
之前的answeerput\/?
,意思是“匹配反斜杠,最后一位是可选的”
/^https?:\/\/(?:(?:www|m)\.)?facebook\.com\/?$/