一、正则表达式符号及意义
非打印字符 | 意义 |
---|---|
\s | 匹配空字符 |
\S | 匹配非空字符 |
特殊字符 | 意义 |
---|---|
^ | 代表正则表达式的开始位置 如果匹配自身:\ ^ |
$ | 正则表达式的结尾 如果要匹配自身:\ $ |
( ) | 在正则表达式里面 代表子表达式的开始和结尾 |
* | 匹配子表达式零次或多次 如果匹配自身:\ * |
+ | 匹配子表达式一次或多次 如果匹配自身:\ + |
? | 匹配前面的子表达式零次或一次 如果匹配自身:\ ? |
. | 匹配除\ n 之外的单字符 例如b.g 如果匹配自身:\ . |
[ ] | 匹配正则里面的开始和结尾 一般给里面数值或字符 放匹配的值 如果匹配自身:\ [ |
{ } | 限定前面的表达式的次数 参数:n n, n,m |
l | 单或 两者随意 |
二、正则的使用(举例)
1.验证电话号码
/* 11位 1 3 4 5 7 8 9 */
var s=/^[1]{1}[3,4,5,7,8]{1}[0-0]{9}$/;
var tel="13789648943";
验证方法:match 验证、reg验证
/*match 方法验证 :如果正确返回当前的值 如果错误返回null*/
alert(tel.match(s));
/*RegExp 对象验证 :正确返回true 错误返回false*/
var reg=new RegExp(s);
alert(reg.test(tel));
邮箱正则
/*sina qq 163 */
var e=/^[0-9a-zA-Z_]{5,}@((qq)|(sina)|(163))\.(con)$/;
var email="lww_1122@163.com";
alert(email.match(e));
var r=new RegExp(e);
alert(r.test(email));
匹配空 替换空
var s="a b c";
/* 判断有没有空值: /\s/g g:全局 在正则中表示匹配多次 */
console.log(s.replace(/\s/g,""));
var value="";
console.log(value.match(/\S/g));
判断一个字符串是否是数字
var s="1234";
var a=/^\d*$/; /* \d:纯数字 */
console.log(s.match(a));
身份证正则:xxxxxx yyyy MM dd 375 0
/* xxxxxx:[1-9]\d{5}
yy:(18|19|([23]\d))
yy:\d{2} 1800-2399年
MM:((0[1-9])|(10|11|12))
dd:(([0-2][1-9])|10|20|30|31)
\d{3}
[0-9Xx] */
var s=/^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx] $/;
var a="61013119990606234x";
alert(a.match(s));
正则练习:
var a="bacmd"
var m=/[a-z]+/;
alert(a.match(m));
var a=/[23]/;
var m="3";
console.log(m.match(a));
网上也有正则生成器