我正在使用https://regexr.com/测试正则表达式。我正在尝试验证表单上的名称输入,所以:
在我的验证功能中,我可以拥有:
if (/\d/.test(charStr)) {
return false;
}
/\d/
将匹配数字。到目前为止,一切都很好。
更改为:
if (/\d|\W/.test(charStr)) {
return false;
}
..将匹配数字\d
或|
非单词字符\W
,这很好,除了它还匹配空格和退格之类的空白字符。
因此,我尝试以某种方式使用\W
,但空格字符除外。
我尝试过:
if (/\d|\W[^\s]/.test(charStr)) {
return false;
}
因此,匹配数字\d
或除空白字符\W
以外的非单词字符[^\s]
,但此处的语法似乎是错误的。
我在做什么错?谢谢。
答案 0 :(得分:4)
在正则表达式中,白名单(告诉引擎您想要的内容)通常比黑名单(告诉您不需要的内容)容易得多。如果只需要字母和空格,请这样说:
/^[a-z ]+$/
请注意,在使用输入之前,必须先trim
输入,否则它将“验证”完全由空格组成的字符串。