我想通过正则表达式检查:
现在看起来像:
^[^!<>?=+@{}_$%]+$
如何编辑此正则表达式以检查字符串中是否有数字(必须包含它)?
答案 0 :(得分:3)
您可以将[0-9]+
或\d+
添加到正则表达式中,如下所示:
^[^!<>?=+@{}_$%]*[0-9]+[^!<>?=+@{}_$%]*$
要么
^[^!<>?=+@{}_$%]*\d+[^!<>?=+@{}_$%]*$
在[0-9]
和\d
之间有所不同,请参阅here
答案 1 :(得分:2)
请向前看数字:
var re = /^(?=.*\d)[^!<>?=+@{}_$%]+$/;
console.log(re.test('bob'));
console.log(re.test('bob1'));
console.log(re.test('bob#'))
&#13;
(?=.*\d)
部分是输入中某处的单个数字的预测。
答案 2 :(得分:0)
你只需要添加号码检查,是吗?你可以这样做:
/^(?=.*\d)[^!<>?=+@{}_$%]+$/
我们做一个预测(比如偷看下面的字符而不移动我们在字符串中的位置)来检查字符串中是否有至少一个数字。 然后我们正常检查以确定这些符号是否都不是那些符号,在我们去的时候通过字符串移动。
正如注释:如果您想匹配换行符(a.k.a。换行符),则可以将点.
更改为[\W\w]
。这匹配任何角色。你可以通过多种方式实现这一目标,但它们彼此之间几乎一样笨重,所以它取决于你。