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

时间:2011-09-28 08:55:21

标签: javascript regex preg-match

就像标题所说,我在JavaScript中有一个(错误的)正则表达式,它应该检查由斜杠包围的“2”字符(在这种情况下)。因此,如果网址为http://localhost/page/2/,则Regex会通过。

在我的情况下,我有http://localhost/?page=2之类的东西,正则表达式仍然通过。

我不确定为什么。谁能告诉我它有什么问题?

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

(我要告诉你,我没有写这段代码,我不知道它是如何工作的,因为我对Regex真的很糟糕)

2 个答案:

答案 0 :(得分:6)

似乎太简单但不应该这样做?:

/\/2\// 

http://jsfiddle.net/QHac8/1/

因为它是javascript,你必须转义正斜杠,因为它们是正则表达式字符串的分隔符。

或者如果您想匹配任何数字:

/\/\d+\// 

答案 1 :(得分:4)

您不会检查斜线包围的数字。你看到的斜线只是你的正则表达式分隔符。您检查每侧有一个带有单词边界\b的2。这适用于/2/,但适用于=2

如果你想只允许2被斜线包围,试试这个

/^(.*?)\/2\/(.*?)$/

^表示从字符串开头匹配

$匹配到字符串

结尾

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

如果你不需要这些部分,那么Richard D是正确的,正则表达式/\/2\//对你来说没问题。