开发中经常校验输入的文字合法性,中文、空格和特殊符号等。总结一下这些问题的校验方法:

   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则有特殊字符。