工具类:CharUtil

package com.etc.util;

import java.util.regex.Pattern;

public class CharUtil {

    public static void main(String[] args) {
String[] strArr = new String[] { "www.micmiu.com", "!@#$%^&*()_+{}[]|\"'?/:;<>,.", "!¥……()——:;“”‘’《》,。?、", "不要啊", "やめて", "韩佳人", "???" };
for (String str : strArr) {
System.out.println("===========> 测试字符串:" + str);
System.out.println("正则判断结果:" + isChineseByREG(str) + " -- " + isChineseByName(str));
System.out.println("Unicode判断结果 :" + isChinese(str));
System.out.println("详细判断列表:");
char[] ch = str.toCharArray();
for (int i = 0; i < ch.length; i++) {
char c = ch[i];
System.out.println(c + " --> " + (isChinese(c) ? "是" : "否"));
}
}
} // 根据Unicode编码完美的判断中文汉字和符号
private static boolean isChinese(char c) {
Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B
|| ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS
|| ub == Character.UnicodeBlock.GENERAL_PUNCTUATION) {
return true;
}
return false;
} // 完整的判断中文汉字和符号
public static boolean isChinese(String strName) {
char[] ch = strName.toCharArray();
for (int i = 0; i < ch.length; i++) {
char c = ch[i];
if (isChinese(c)) {
return true;
}
}
return false;
} // 只能判断部分CJK字符(CJK统一汉字)
public static boolean isChineseByREG(String str) {
if (str == null) {
return false;
}
Pattern pattern = Pattern.compile("[\\u4E00-\\u9FBF]+");
return pattern.matcher(str.trim()).find();
} // 只能判断部分CJK字符(CJK统一汉字)
public static boolean isChineseByName(String str) {
if (str == null) {
return false;
}
// 大小写不同:\\p 表示包含,\\P 表示不包含
// \\p{Cn} 的意思为 Unicode 中未被定义字符的编码,\\P{Cn} 就表示 Unicode中已经被定义字符的编码
String reg = "\\p{InCJK Unified Ideographs}&&\\P{Cn}";
Pattern pattern = Pattern.compile(reg);
return pattern.matcher(str.trim()).find();
}
}

  

MyUsernameValidator

package com.etc.validator;

import com.etc.util.CharUtil;
import com.opensymphony.xwork2.validator.ValidationException;
import com.opensymphony.xwork2.validator.validators.FieldValidatorSupport; public class MyUsernameValidator extends FieldValidatorSupport
{ //执行校验
public void validate(Object ctx) throws ValidationException {
//1 获取输入的字段名
String field = this.getFieldName();
//2 获取该字段的值
String value = (String) this.getFieldValue(field,ctx);
//3 如果含有中文,则报错
if(CharUtil.isChinese(value))
{
this.addFieldError(field, ctx);
}
} }

  

最新文章

  1. lucene和es总结
  2. 部署lamp服务器
  3. UVA 1314 最小表示法
  4. 单源最短路径算法---Dijkstra
  5. git大文件管理
  6. 2013 Asia Chengdu Regional Contest
  7. Android app Splash页的替代方案
  8. DHCP Option 60 的理解
  9. A Magic Lamp(贪心+链表)
  10. This application failed to start because it could not find or load the Qt platform plugin &amp;quot;xcb&amp;quot;.
  11. JavaEE(7) - JMS消息事务和异常
  12. 手机自带输入法emoji表情的输入,提交及显示——纯前端解决方案
  13. MatlabR2015b用了一段时间之后需要重新激活
  14. Laravel-admin 七牛云上传文件到七牛云出现卡顿失败情况
  15. oracle 数据库中某个字段逗号分隔,得到对应列中的个数(列转行)实现方法
  16. 运用scrollPic插件的实例
  17. yarn如何全局安装命令以及和环境变量的关系
  18. 海量数据处理之top K问题
  19. glibc降级尝试失败-兼使用另一个版本的glibc
  20. Linux 编程简单示例代码

热门文章

  1. 完全重装python和yum
  2. 【P2052】道路修建(树形+搜索)
  3. C#加密解密DES字符串&lt;转&gt;
  4. Composer如何安装(安装注意事项)
  5. 清北学堂(2019 5 1) part 4
  6. 安全清空废纸篓mac
  7. mac上完整卸载删除:android studio方案
  8. 31 python下实现并发编程
  9. python编程实例-统计apache进程占用的物理内存
  10. git公私钥的拷贝