创建时间:2016-10-19
正则:字符串的匹配|过滤|替换
元字符
b 匹配单词的边界
s 匹配任何的空白字符
w 匹配包括下划线的任何单词字符 等价于[A-Za-z0-9_]
d 匹配一个数字字符 等价于[0-9]
B 匹配非单词的边界
S 匹配任何的非空白字符
W 匹配任何非单词字符
D 匹配一个非数字字符
^ 以某个字符开头
$ 以某个字符结尾
. 代表除了换行符之外的任何字符
* 匹配前面的字符零次或多次 等价{0,}
+ 匹配前面的字符1次或多次 等价{1,}
?匹配前面的字符0次或1次
限定符
{数字,} 至少匹配前面数字的次数或者多次 例:{1,} 至少匹配1个或者多次
{m,n} 至少匹配前面字符m次数最多n次 例:{2,10} 至少匹配2次最多10次
{m} 匹配前面的字符m次
正则定义的方法:
1、实例化正则的方式
var obj = new RegExp("正则模式","修饰符");
例:var obj = new RegExp("\d+","g");
var strData = "1234";
var arrData = strData.match(obj);
alert(arrData);
2、var obj = /正则/修饰符
var obj = /[a-z]+/g;
var strData = "hello123";
var arrData = obj.exec(strData);
alert(arrData);
————————————————————————————————————————————————————————————
模式:
i 不区分大小写模式
g 全局模式,查到与正则匹配的项,然后继续查找,直到没有匹配的项为止
m 多行模式
————————————————————————————————————————————————————————————
属性:
lastIndex 表示下一次寻找的位置 注意:必须是全局模式
列:var obj = /[a-z]+/g;
var strData = "hello123abc";
var boolData = obj.exec(strData);
alert(obj.lastIndex);
source 获取的是正则源文本
例:var obj = /[a-z]+/g;
var strData = "hello123abc";
var boolData = obj.exec(strData);
alert(obj.source);
————————————————————————————————————————————————————————————
方法:
正则对象.exec() 用正则模式去字符串里找出与正则匹配的项 注意:exec不支持全局模式
例:var obj = /[a-z]+/g;
var strData = "hello123abc";
var arrData = obj.exec(strData);
alert(arrData);
正则对象.test() 用正则模式去测式字符是否与正则匹配,如果匹配返回true 否则返回 false
var obj = /^1[34578]d{9}$/; //写一个检测手机号的正则
var strData = "15045678945";
var boolData = obj.test(strData);
alert(boolData);
————————————————————————————————————————————————————————————
字符串对象:
split 用字符或正则分割一个字符串,返回一个数组
var strData = "123,abc|@#$";
var Data = strData.split(/[,|]/);
alert(Data);
match 用正则去字符串中找匹配项,如果找到返回数组,否则返null
var strData = "123,abc|@#$";
var Data = strData.match(/[a-z]+/);
alert(Data);
search 去字符串中找正则匹配项,如果找到就返回找到字符的位置,如果没找到返回-1
var email = "china.php@qq.com";
alert(email.search(/@/));
replace 去字符串中找正则匹配项,然后用指定字符进行替换
var email = "china.php#qq.com";
alert(email.replace(/#/,"@"));
常用正则表达式
手机号码
var regPhone = /^1[3584]\d{9}$/; //检测手机号的正则,匹配 以1开头,第二位为3584,只能包含数字,长度11位常用密码
var regPass = /^[0-9a-zA-Z]{6,18}$/;//密码规则:6-18位字母数字组合身份证
var regID = /^\d{15}|\d{18}$/;//身份证号(15位、18位数字)邮箱
var regEmail = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;//邮箱
上一篇:5.21-BOM浏览器
下一篇:5.26-jQuery