这是一个非常愚蠢的问题,但对于我的生活,我无法在javascript中找到一种简单的方法。
如果一个字符串有" abcdefgh",这应该返回false(没有发现错误)
但是如果一个字符串有一个无效字符,如" @ $$",它应该返回true(找到错误)。
因此,一般规则是如果它包含非单词,非空格和非连字符,则它应返回true以指示错误。
我尝试了(/\W\D\S/).test('hello!')
,由于"!"应该返回true(发现问题),但它仍然返回false。
非常感谢!
答案 0 :(得分:2)
这可能有效/[^\w\s-]/
当line不包含任何单个非单词,空格或连字符时返回true。
答案 1 :(得分:1)
在您当前的正则表达式中,您并不是在寻找任何这些东西 - 您正在寻找连续三个。
此外,\D
并不意味着非连字符#34;它表示"不是数字"。
您想要搜索与白名单不匹配的任何内容:
(/[^\w\s\-]/).test('hello!') // true
(/[^\w\s\-]/).test('hello') // false
(/[^\w\s\-]/).test('hello-there') // also false