我有regexp
。并且它可以互换地返回true
和false
。它怎么样?如何修复正则表达式?目标是仅允许数字和空格" (123 56 123)。
var r = new RegExp("[0-9\s]{3,30}", "gi")
r.test("123454")
true
r.test("123454")
false
答案 0 :(得分:3)
如果您使用正则表达式中的g
标记,例如:
var r = new RegExp("[0-9\\s]{3,30}");
然后它会表现得很好。
r.test("123454")
true
r.test("123454")
true
r.test("123454")
true
PS: i
标志没有用处,也可以删除。
答案 1 :(得分:2)
您需要使用锚定的正则表达式,并且还要再次使用反斜杠。
g修饰符。var r = new RegExp("^[0-9\\s]{3,30}$", "m")
示例:
> var r = new RegExp("^[0-9\\s]{3,30}$", "m")
undefined
> r.test("123454")
true
> r.test("123454")
true
或强>
> var r = /^[0-9\s]{3,30}$/m;
undefined
> r.test("123454")
true
答案 2 :(得分:1)