开发中经常校验输入的文字合法性,中文、空格和特殊符号等。总结一下这些问题的校验方法:
1)中文
js实现:
function ischinese(str){
if(/[^\x00-\xff]/g.test(str)){
return true;
}else{
return false;
}
}
java实现:如果字符串为空的话,则说明不含有双字节字符
protected static boolean hasDoubleByteCharacters(String str){
if(StringUtils.isBlank(str)){
return false;
}
return contains(str, DOUBLEBYTE_CHARACTERS_PATTERN);
}
2)空格:
JS实现:
function trim(value) {
return value.replace(/(^\s*)|(\s*$)/g,'');
}
java实现:
content = content.replace(" ", "").trim();
content = Jsoup.clean(StringUtils.trimToEmpty(content), Whitelist.none());
3)特殊字符:
JS实现:
function checkSpecial(str){
var reg =/^[^@\/\'\\\"#$%&\^\*]+$/;
if(reg.test(str)){
return ture;
} else{
return false;//包含非法字符
}
}
java实现:
yxmc.replaceAll("[\u4e00-\u9fa5]*[a-z]*[A-Z]*\\d*-*_*\\s*", "").length()>0
如果大于0则有特殊字符。