繁体   English   中英

正则表达式模式,如果字符串包含字符

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM