陈广安个人网站
会写代码的咸鱼
陈广安个人网站阿里云盘资源
陈广安个人网站网盘资源搜索
“ 梦想还是要有的,万一实现了呢!”
— 马云

5.24-正则表达式

创建时间: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