1.什么是正则表达式
正则表达式是一种用于匹配字符串的规则给计算机看i的有两种表现形式(可以理解为一个对象)
var reg=new RegExp("abc","g"); //这是一种abc代表你要匹配的字符串,g为附加的条件代表全局匹配,i代表不区分大小写
var reg=/所要匹配的内容/;
方法
正则.text("字符串") 匹配成功返回true 匹配不成功返回false
var reg=/'abc'/; var str="abcd"; if(reg.test(str)) { alert("匹配成功"); }else{ } alert("匹配不成功");
match()方法
字符串.match(正则);
匹配成功结果返回数组
匹配不成功结果返回null
var str = 'dsgud3456jgfuyj789'; var a = /\d+/g; var arr = str.match( a ); alert( arr );
正则的转意
\ 在正则里面是转义
\d 数字 指的是一个数,如果要多个则就用量词修饰
\D 非数字
\s 空格
\S 非空格
\w 字符 (数字 字母 下划线 等)
\W 非字符
正则里的量词,量词用于修饰前一位的个数
量词 : {}
{2,3} 最少出现2次,最多出现3次
+ :{1,} 最少出现1次,
* : {0,} 最少出现0,
? : {0,1} 最少出现0次,最多出现1次
search()方法
字符串.search( 正则 );
匹配成功 返回字符所在位置
匹配不成功 返回-1
var str = '4bhdfshzhoufjajfgg'; var r = /zhou/g; var a = str.search( r ); alert( a )
replace()
字符串.replace(正则 , 参数);
参数 :字符串 || 函数 通俗的讲就是把所匹配的的用其他字符串替换
字符类 指的是匹配一个字符
[ab] a或者b
[0-9] 0到9
[a-z] a到z
[A-F] A到Z
[^0] 不是0
var eva = 'a371874535'; var r = /[1-9]\d{4,9}/; //匹配1到9中的一个数 alert( eva.match(r) )
\d \D
\w \W
\s \S
\b \B 独立部分 空格、起始、结束
. 所有的字符
^ 起始
$ 结束
实例
QQ号的规则:
只能是数字
长度 : 5 10
不能以0开头
邮箱的规则: 2273711289@qq.com jii433@163.cn.com
手机号规则
11 1 数字
var regQQ = /^[1-9]\d{4,9}$/; var regMail = /^\w+@[0-9a-zA-Z]{2,}(\.[a-zA-Z]{2,}){1,2}$/; var regTel = /^1[34578]\d{9}$/; var regID = /^[1-9]\d{16}[0-9xX]$/; oTxt.onblur = function(){ var val = this.value; if ( val.length ) { if ( regMail.test( val ) ) { alert( 'OK' ) } else { alert( '您输入的邮箱不满足要求' ); } } }