正则表达式
一. 定义正则表达式(Regular Expression),使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。 二. 基本语法元字符正则表达式中有特殊含义的非字母字符 字符类
var reg=/[^ab]/g; var string="acdadbb"; string.replace(reg,"A"); //结果为"aAAaAbb" 范围类
[a-zA-Z] //匹配26个字母的大小写 预定义类
边界
量词
分组1. //匹配一个字母加一个数字的前两个组合 var reg1=/[a-z]d{2}/g; var reg2=/([a-z]d){2}/g; //增加() var string="a1c2d3adbb"; string.replace(reg1,"A"); //结果为"a1c2d3adbb",没有改变,因为匹配的是字母加上出现2次的数字 string.replace(reg2,"A"); //结果为"Ad3adbb"" 2.或 var reg=/h(o|i)t/g; var string="hothithat"; string.replace(reg,"A"); //结果为AAhat 3.反向引用 var reg=/(d{4})-(d{2})-(d{2})/g; var string="2016-08-16"; string.replace(reg,"$2/$3/$1"); //结果为08/16/2016 其中 4.忽略分组 var reg=/(d{4})-(?:d{2})-(d{2})/g; var string="2016-08-16"; string.replace(reg,"$2/$3/$1"); //结果为16/$3/2016,月份已经被忽略,无法通过$加数字进行访问 前瞻文本尾部方向,为 var reg=/w(?=d)/g; //找到字母后,判断后面是不是有数字,有的话才符合,替换掉这个字母,但是数字不会替换 var string="h2othi2"; string.replace(reg,"A"); //结果为A2othA2 三. 匹配模式贪婪模式极可能多地匹配 var reg=/d{3,6}/g; var string="123456789"; string.replace(reg,"A"); //结果为"A789",尽可能多的匹配 非贪婪模式让正则表达式尽可能少的匹配,一旦匹配成功就不再继续尝试。方式是在量词后加上 var reg=/d{3,6}?/g; var string="123456789"; string.replace(reg,"A"); //结果为"AAA",尽可能多的匹配 四. RegExp对象创建方法有两种方法可以创建RegExp对象 var reg=new RegExp("pattern"[,"flag"]); b.隐式构造函数: var reg=/pattern/[flags]; 其中,flags可以是一些标志字符的组合
例如: /ab+c/i; new RegExp("ab+c","i"); RegExp对象的属性
RegExp对象的方法execrgExp.exec(str) 返回值:如果没有找到匹配返回null,如果找到则返回一个数组 input包含了查找的字符串, index属性包含了整个被查找字符串中被匹配的子字符串的位置, lastIndex属性中包含了最后一次匹配中最后一个字符的下一个位置 testrgexp.test(str) 返回值:如果存在一个模式,返回true matchstringObj.match(rgExp) 返回值:如果没有找到匹配返回null,如果找到则返回一个数组 searchstringObj.search(rgExp); 返回值:如果存在,则返回 一个整数值,指明这个匹配距离字符串开始的偏移位置。 replacereplace(rgExp,replaceText); splitsplit([separator[,limit]]) separator 分割标识符参数,可以是多个字符或一个正则表达式 五. 参考资料
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |