这篇文章主要讲如何使用正则匹配中文字符,中文正则表达式的匹配规则不像其他正则规则一样容易记住,下面一起看看这个中文正则表达式是怎么样的。
\w匹配的仅仅是中文,数字,字母,对于国人来讲,仅匹配中文时常会用到,见下
匹配中文字符的正则表达式:
[\u4e00-\u9fa5]
或许你也需要匹配双字节字符,中文也是双字节的字符
匹配双字节字符(包括汉字在内):
[^\x00-\xff]
注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
更多常用正则表达式匹配规则:
英文字母:
[a-zA-Z]
数字:
[0-9]
匹配中文,英文字母和数字及_:
^[\u4e00-\u9fa5_a-zA-Z0-9]+$
同时判断输入长度:
[\u4e00-\u9fa5_a-zA-Z0-9_]{4,10}
,^[\w\u4E00-\u9FA5\uF900-\uFA2D]*$
一个正则表达式,只含有汉字、数字、字母、下划线不能以下划线开头和结尾:
^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$
其中:
^
与字符串开始的地方匹配
(?!_)
不能以_开头
(?!.*?_$)
不能以_结尾
[a-zA-Z0-9_\u4e00-\u9fa5]+
至少一个汉字、数字、字母、下划线
$
与字符串结束的地方匹配
只含有汉字、数字、字母、下划线,下划线位置不限:
^[a-zA-Z0-9_\u4e00-\u9fa5]+$
由数字、26个英文字母或者下划线组成的字符串
^\w+$
2~4个汉字
^[\u4E00-\u9FA5]{2,4}$
;
手机号
^1[3|4|5|7|8][0-9]{9}$
邮箱
// 邮箱的正则匹配分为两个个部分来进行匹配 `名称@域名`. 域名部分的规则是一样的,名称部分做了区分
// 名称只允许英文字母、数字、下划线、英文句号、以及中划线组成
let reg = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
// 名称允许汉字、字母、数字,域名只允许英文域名
let reg1 =/^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
身份证
//身份证正则表达式(15位)
isIDCard1= /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/
;
//身份证正则表达式(18位)
isIDCard2= /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/
;
身份证正则合并:(^\d{15}$)|(^\d{17}([0-9]|X)$)