![](/img/trans.png)
[英]Javascript RegEx to return if string contains characters that are NOT in the RegEx
[英]Regex pattern if string contains characters
抱歉,对于Java和Regex来说,它是绝对的初学者,
我有一个Codepen: http ://codepen.io/anon/pen/dNJNvK
我要完成的工作是验证字符串是否包含一些特殊的UTF-8字符。 这就是为什么我使用RegExp。 仅当要测试的字符串等于其中一个字符时,我在此处的模式才会返回false。 但是,如果其中包含这些字符之一,我想返回false。
我如何做到这一点,我知道它应该很容易,但是我无法使其工作。
var regEx = new RegExp('[\-\ÿ]'); 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(" "));
为什么不反过来呢?
另外,您的测试可以match
也可以是整个字符串的test
var regEx = /[\\x00-\\x7F]/g; // can be added to function okChar(str) { var res = str.match(regEx); if (res===null) return false; return res.length===str.length; } console.log("This should be true: " + okChar("Tes")) console.log("This should be false: " + okChar("Tesú")); console.log("This returns false, because the string equals a special character: " + okChar("ú"));
正如@Gabriel所说,它返回true,因为字符串中至少有一个字符与您的范围相匹配
您要做的是检查每个字符是否在范围内
/^[\u0001-\u00FF]+$/
或任何字符不在范围内
[^\u0001-\u00FF]
在第二种情况下,如果使用特殊字符,则为true;当所有字符都安全时,则为false;因此,您可能必须翻转以后进行的检查
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.