2010-09-25 177 views

回答

6

发生这种情况的原因是它匹配11中的1并将其称为匹配项。你必须确保没有跟随1.尝试另一个数字:

var check = string.match("/(^|\D)1(\D|$)/"); 

这将寻找通过不是数字或字符串(^的开始/结束和文字环绕方式$锚)。

+0

非常感谢它完美的作品!我会尽快接受你的回答! – Adam 2010-09-25 04:00:38

+0

@zolex请显示什么输入会打破正则表达式 – NullUserException 2010-09-25 04:05:35

+0

这个正则表达式只适用于这种特殊情况。看到我的upcomming答案的正则表达式,以检查值是否在某种程度上分开列表... – 2010-09-25 04:05:56

2

另一种方式是将它与词边界锚定在一起:/\b1\b/只会与1匹配(如果未包含其他数字,字母或下划线)。所以它会适用于你的情况(并且可读性更强)。

但是,它会在像ID1OT这样的情况下失败 - 如果你想从那里提取1,你只能用@NullUserException的方法来做到这一点。

相关问题