英文:
regex to contain only ascii chars on string on java
问题
我尝试在Java中使用正则表达式验证字符串以匹配所有ASCII字符。
如果只有ASCII字符,则返回true;如果有任何一个不是ASCII字符的字符,则返回false。
我尝试了以下代码:
Pattern.compile("[^ -~\\r\\n\\t]+").matcher(password).find();
我还尝试了这个代码:
Pattern.compile("[^\\Q A-Za-z0-9!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\\E]").matcher(password).find();
但是都没有起作用。
我要验证的字符串是:
"abตcdefgh12+"
但是这两段代码都返回了true,这意味着它只包含ASCII字符,但实际上并不是。我希望这个字符串返回false。
谢谢!
英文:
im trying to validate string to match all ascii chars on java with regex.
if there is only ascii chars return true, if there is even single char which is not ascii char return false.
i tried the following:
Pattern.compile("[^ -~\\r\\n\\t]+").matcher(password).find();
and also tried this:
Pattern.compile("[^\\Q A-Za-z0-9!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\\E]").matcher(password).find();
but it didnt worked.
the string im trying to validate:
"abตcdefgh12+"
but both codes return to me true, which means its contains only ascii chars which is not... i want that this string will return false.
thanks!
答案1
得分: 2
尝试这个:
public static boolean isPureAscii(String s) {
return Charset.forName("US-ASCII").newEncoder().canEncode(s);
}
参考资料: https://docs.oracle.com/javase/1.5.0/docs/api/java/nio/charset/Charset.html
英文:
Try this:
public static boolean isPureAscii(String s) {
return Charset.forName("US-ASCII").newEncoder().canEncode(s);
}
Reference: https://docs.oracle.com/javase/1.5.0/docs/api/java/nio/charset/Charset.html
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论