就像标题所说,我在JavaScript中有一个(错误的)正则表达式,它应该检查由斜杠包围的“2”字符(在这种情况下)。因此,如果网址为http://localhost/page/2/,则Regex会通过。
在我的情况下,我有http://localhost/?page=2之类的东西,正则表达式仍然通过。
我不确定为什么。谁能告诉我它有什么问题?
/^(.*?)\b2\b(.*?$)/
(我要告诉你,我没有写这段代码,我不知道它是如何工作的,因为我对Regex真的很糟糕)
答案 0 :(得分:6)
似乎太简单但不应该这样做?:
/\/2\//
因为它是javascript,你必须转义正斜杠,因为它们是正则表达式字符串的分隔符。
或者如果您想匹配任何数字:
/\/\d+\//
答案 1 :(得分:4)
您不会检查斜线包围的数字。你看到的斜线只是你的正则表达式分隔符。您检查每侧有一个带有单词边界\b
的2。这适用于/2/
,但适用于=2
如果你想只允许2被斜线包围,试试这个
/^(.*?)\/2\/(.*?)$/
^
表示从字符串开头匹配
$
匹配到字符串
(.*?)
这些部分匹配2
之前和之后的所有内容,并且这些部分存储在捕获组中。
如果你不需要这些部分,那么Richard D是正确的,正则表达式/\/2\//
对你来说没问题。