[转]js正则表达式之中文验证
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 |
http: //houfeng0923.iteye.com/blog/1035321
今天做表单提交的输入框条件验证,验证是否包含中文;网上搜了一圈基于js正则表达式的验证基本不好用,而且大多都是出自一两篇原文的转帖!到底什么才是拿来主义呢。根据搜索结果,本文取精华,告诉大家一个好用的中文验证方法。
使用js正则表达式匹配中文,需要了解中文字符在unicode编码中所处的区间。这样才能够了解表达式的匹配原理。
首先在正则表达式中使用
Unicode,必须使用u开头,接着是字符编码的四位16进制表现形式
简单匹配中文方法:
/[^u0000-u00FF]/ (匹配非单字节字符 )
另错误方法:/[^u00-uFF]/
(匹配 非单字节字符、还包括一些全半角符号如,.(){}""!等、还有vwxyz字符)
说明: //u0000-u00ff.包含unicode单字节编码(
0-255编码)包含基本控制字符和拉丁文字母。 采用该否定表达式,粗略判断是否含有中文。
具体的匹配中文及字符方法:/[u4E00-u9FA5uF900-uFA2D]/
说明:
u4e00-u9fbf : unicode CJK(中日韩)统一表意字符。u9fa5后至u9fbf为空
uF900-uFAFF
: 为unicode CJK 兼容象形文字 。uFA2D后至uFAFF为空
具体可参考unicode编码表:http: //www.nengcha.com/code/unicode/class/
//是否含有中文(也包含日文和韩文)
function
isChineseChar(str){
var reg
= /[u4E00-u9FA5uF900-uFA2D]/;
return reg.test(str);
}
//同理,是否含有全角符号的函数
function
isFullwidthChar(str){
var reg
= /[uFF00-uFFEF]/;
return reg.test(str);
}
|
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: composer安装yii时遇到token问题
- 下一篇:没有了