很抱歉,我是一个绝对的初学者,当涉及到 Javascript 和 Regex 时,
我有一个Codepen:http://codepen.io/anon/pen/dNJNvK
我想要完成的是验证字符串是否包含一些特殊的 UTF-8 字符。这就是我使用 RegExp 的原因。仅当要测试的字符串等于字符之一时,我此处的模式才会返回 false。但如果它包含这些字符之一,我想返回 false。
我怎样才能做到这一点,我知道它应该很容易,但我无法让它发挥作用。
var regEx = new RegExp('[\u0001-\u00FF]');
console.log("This should be true: " + regEx.test("Tes"));
console.log("This should be false: " + regEx.test("Tes�"));
console.log("This returns false, because the string equals a special character: " + regEx.test("�"));
最佳答案
正如 @Gabriel 评论的那样,它返回 true,因为字符串中至少有一个字符与您的范围匹配
你想要做的是检查每个字符是否在范围内
/^[\u0001-\u00FF]+$/
或者任何字符不在范围内
[^\u0001-\u00FF]
在第二种情况下,当使用特殊字符时,您将得到 true;当所有字符都是安全时,您将得到 false,因此您可能必须翻转之后执行的检查
关于javascript - 如果字符串包含字符,则使用正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41932262/