java 中文及特殊字符校验 20259079编辑

Heaven helps those who help themselves
资深码农+深耕理财=财富自由
欢迎关注

java 中文及特殊字符校验

Created by Marydon on 2017-08-25 16:59

一、参考链接

  http://blog.csdn.net/imduan/article/details/54907998

二、具体实现

  1.关于Character.UnicodeBlock的介绍

  CJK的意思是“Chinese,Japanese,Korea”的简写 ,实际上就是指中日韩三国的象形文字的Unicode编码

  Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS : 4E00-9FBF:Unicode 编码为 U+4E00~U+9FFF 的 CJK 统一文字 
  Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS :F900-FAFF:CJK 兼容象形文字

  Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A :3400-4DBF:CJK 统一表意符号扩展 A 
  Character.UnicodeBlock.GENERAL_PUNCTUATION :2000-206F:常用标点

  Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION :3000-303F:CJK 符号和标点                                   

  Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS :FF00-FFEF:半角及全角形式

  2.封装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
/**
 * 校验一个字符是否是汉字
 *
 * @param c
 *            被校验的字符
 * @return true代表是汉字
 */
public static boolean isChineseChar(char c) {
    try {
        return String.valueOf(c).getBytes("UTF-8").length > 1;
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
        return false;
    }
}
 
/**
 * 验证字符串内容是否包含下列非法字符<br>
 * `~!#%^&*=+\\|{};:'\",<>/?○●★☆☉♀♂※¤╬の〆
 *
 * @param content
 *            字符串内容
 * @return 't'代表不包含非法字符,otherwise代表包含非法字符。
 */
public static char validateLegalString(String content) {
    String illegal = "`~!#%^&*=+\\|{};:'\",<>/?○●★☆☉♀♂※¤╬の〆";
    char isLegalChar = 't';
    L1: for (int i = 0; i < content.length(); i++) {
        for (int j = 0; j < illegal.length(); j++) {
            if (content.charAt(i) == illegal.charAt(j)) {
                isLegalChar = content.charAt(i);
                break L1;
            }
        }
    }
    return isLegalChar;
}
 
/**
 * 验证是否是汉字或者0-9、a-z、A-Z
 *
 * @param c
 *            被验证的char
 * @return true代表符合条件
 */
public static boolean isRightChar(char c) {
    return isChinese(c) || isWord(c);
}
 
/**
 * 校验某个字符是否是a-z、A-Z、_、0-9
 *
 * @param c
 *            被校验的字符
 * @return true代表符合条件
 */
public static boolean isWord(char c) {
    String regEx = "[\\w]";
    Pattern p = Pattern.compile(regEx);
    Matcher m = p.matcher("" + c);
    return m.matches();
}
 
/**
 * 判定输入的是否是汉字
 *
 * @param c
 *            被校验的字符
 * @return true代表是汉字
 */
public 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.GENERAL_PUNCTUATION
            || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
            || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {
        return true;
    }
    return false;
}
 
/**
 * 校验String是否全是中文
 *
 * @param name
 *            被校验的字符串
 * @return true代表全是汉字
 */
public static boolean checkNameChese(String name) {
    boolean res = true;
    char[] cTemp = name.toCharArray();
    for (int i = 0; i < name.length(); i++) {
        if (!isChinese(cTemp[i])) {
            res = false;
            break;
        }
    }
    return res;
}

  

与君共勉:最实用的自律是攒钱,最养眼的自律是健身,最健康的自律是早睡,最改变气质的自律是看书,最好的自律是经济独立 。

您的一个点赞,一句留言,一次打赏,就是博主创作的动力源泉!

↓↓↓↓↓↓写的不错,对你有帮助?赏博主一口饭吧↓↓↓↓↓↓

posted @   Marydon  阅读(9079)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示
sorry,本博客所有代码禁止复制,原创代码需扫码支付方可获取!
关闭

1、先加好友再付费,点我加好友;

2、代码不能满足你的需求?加好友付费定制你的专属代码!

3、付费标准及方式,点我查看详情。