1:基本概念
正则表达式中有很多上述的具有特别意义的字符。首先是下列字符。
-
[ ]:范围描述符。[a-z]表示从a到z之间的任意一个。
\w:英文字母和数字。即[0-9 A-Z a-z]。
\W:非英文字母和数字
\s:空字符,即[\t\n\r\f]。
\S:非空字符。
\d:数字,即[0-9]。
\D:非数字。
\b:词边界字符(在范围描述符外部时)
\B:非词边界字符
\b:退格符(0x08)(在范围描述符内部时)
*:前面元素出现0次以上
+:前面元素出现1次以上
{m,n}:前面元素最少出现m次,最多出现n次
?:前面元素出现0次或1次
|:选择
( ):群组
2:常见的正则表达式
电话号码:/^[1][358][0-9]{9}$或^[1][358]\d{9}$/ (现在只有13、15和18开头的11位手机号码。以1开头,第2位数字为3或5或8,后面接9位数字)
身份证号码:/^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/(这个比较符合规则,复杂点)
/^([0-9]{15}$|^[0-9]{18}$|^[0-9]{17}([0-9]|X|x))$/(简单点)
只能正整数:/^\d+$/
中文字符: [\u4e00-\u9fa5]
匹配空行:\n[\s| ]*\r
邮政编码:/^\d{6}$/
用户名 汉字字母数字下划线(5-16位):/^[a-zA-Z0-9_\u4e00-\u9fa5]{5,16}$/
IP地址:/^(([hH][tT]{2}[pP][sS]?)|([fF][tT][pP]))\:\/\/[wW]{3}\.[\w-]+\.\w{2,4}(\/.*)?$/
Email邮箱:/^([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+(\.[a-zA-Z]{2,3})+$/
固定电话号码:/^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/
3:java和js的验证方法(以验证用户名为例)
Java:String reg="/^[a-zA-Z0-9_\u4e00-\u9fa5]{5,16}$/";
if(Pattern.matches(reg, username)){
}//成功
js: var reg="/^[a-zA-Z0-9_\u4e00-\u9fa5]{5,16}$/";
if((reg.test(password))){}//成功