Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.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 用斜线包围的数字的正则表达式_Javascript_Regex_Preg Match - Fatal编程技术网

Javascript 用斜线包围的数字的正则表达式

Javascript 用斜线包围的数字的正则表达式,javascript,regex,preg-match,Javascript,Regex,Preg Match,正如标题所说,我在JavaScript中有一个(错误的)正则表达式,应该检查斜杠包围的“2”字符(在本例中)。因此,如果URL为,则正则表达式将通过 在我的情况下,我有类似的东西,正则表达式仍然通过 我不知道为什么。谁能告诉我有什么问题吗 /^(.*?)\b2\b(.*?$)/ (我要告诉你,我没有写这段代码,也不知道它是如何工作的,因为我对Regex非常不熟悉)看起来太简单了,但这不应该工作吗?: /\/2\// 因为它是javascript,所以必须避开前斜杠,因为它们是正则表达式字

正如标题所说,我在JavaScript中有一个(错误的)正则表达式,应该检查斜杠包围的“2”字符(在本例中)。因此,如果URL为,则正则表达式将通过

在我的情况下,我有类似的东西,正则表达式仍然通过

我不知道为什么。谁能告诉我有什么问题吗

/^(.*?)\b2\b(.*?$)/

(我要告诉你,我没有写这段代码,也不知道它是如何工作的,因为我对Regex非常不熟悉)

看起来太简单了,但这不应该工作吗?:

/\/2\// 

因为它是javascript,所以必须避开前斜杠,因为它们是正则表达式字符串的分隔符

或者,如果要匹配任何数字:

/\/\d+\// 

您不需要检查被斜线包围的数字。您看到的斜杠只是您的正则表达式分隔符。您可以检查两侧有单词边界
\b
的2。这适用于
/2/
,也适用于
=2

如果你只想让一个2被斜杠包围,试试这个

/^(.*?)\/2\/(.*?)$/
^
表示从字符串开始匹配

$
匹配到字符串末尾

(.*)
这些部分与
2
前后的所有内容都匹配,并且这些部分存储在捕获组中


如果您不需要这些部分,那么Richard D是对的,正则表达式
/\/2\/
适合您。

您的正则表达式应该看起来像
/\D+/
它正在寻找一个
2
,周围是
\b
的单词边界。因此,只要
2
字符被视为“单词”,它就会匹配。
(.*)
只需抓取周围的文本(贪婪地),大概这样你就可以重建URL了。试着去掉问号^(.*)如果你想匹配任何开始顺序,就应该足够了。.意外地投票支持了bdares的评论,这是错误的。我想更可能的是
/\/\d+\/
这也起到了作用。接受答案,因为您用
\b
解释了这件事。谢谢