Javascript正则表达式:匹配非空格字符的任何非单词字符

时间:2018-10-11 23:01:23

标签: javascript regex

我正在使用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],但此处的语法似乎是错误的。

我在做什么错?谢谢。

1 个答案:

答案 0 :(得分:4)

在正则表达式中,白名单(告诉引擎您想要的内容)通常比黑名单(告诉您不需要的内容)容易得多。如果只需要字母和空格,请这样说:

/^[a-z ]+$/

请注意,在使用输入之前,必须先trim输入,否则它将“验证”完全由空格组成的字符串。