Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript URL模式匹配问题,+;赛后_Javascript_Regex_Url Parsing - Fatal编程技术网

Javascript 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

我正在将存储的URL与当前URL进行匹配,但有一点问题-当与URL本身进行匹配时,正则表达式可以正常工作,但出于某种原因,所有子目录也会匹配(当然,当我只需要直接匹配时)

假设用户存储
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\/?$/