这是一个非常愚蠢的问题,但就我的一生而言,我无法找到一种简单的方法在 javascript 中做到这一点。
如果字符串包含“abcdefgh”,则应返回 false(未发现错误)
但如果字符串包含无效字符,例如“@$$”,则应返回 true(发现错误)。
因此,一般规则是,如果它包含非单词、非空格和非连字符,则应返回 true 以指示错误。
我尝试了 (/\W\D\S/).test('hello!')
,由于“!”,它应该返回 true (发现问题),但它正在返回仍然是假的。
非常感谢!
最佳答案
在当前的正则表达式中,您并不是在寻找这些东西中的任何一个 - 您正在寻找连续的所有三个东西。
此外,\D
并不意味着“非连字符”,它意味着“不是数字”。
您想要搜索任何与白名单不匹配的内容:
(/[^\w\s\-]/).test('hello!') // true
(/[^\w\s\-]/).test('hello') // false
(/[^\w\s\-]/).test('hello-there') // also false
关于javascript - 在 javascript 中查找非单词、非空格和非连字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27536536/