熟练掌握这十种字符,你的正则表达式就没问题
元字符 [ ]
var str="diauhvvdai"; var reg=str.replace(/[ha]/g,"xx"); console.log(reg);//输出dixxuxxvvdxxi 量词 {}
{m} m位数 var str="123 38658 395 38726 34324"; var reg=str.match(/d{2,5}/g); console.log(reg);//输出["123","38658","395","38726","34324"]尽可能匹配更多的字符(贪婪模式) console.log(/a?/.test(str));//输出true 贪婪模式
var str="123 38658 395 38726 34324"; var reg=str.match(/d{2,"34324"]尽可能匹配更多的字符(贪婪模式)
var str="123 38658 395 38726 34324"; var reg1=/d{3,}?/g; console.log(str.match(reg1)) 分支 分组 引用
var str="dskj lsdk dslknv lksn"; var reg=str.match(/skj|sdk/g); console.log(reg);//输出["skj","sdk"] var reg1=/bdskj|lsdkb/g; console.log(str.match(reg1));//输出["dskj","lsdk"]
忽略分组 ?: var str1=` 2017-08-25 hdbh-12-12 1234/11/21 2019/211/12 2134-12-122`;//模板字符串 var reg2=/(d{4})[-/](dd)(?:-|/)(d{2})[^0-9]/g; console.log(str1.match(reg2)); console.log(str1.replace(reg2,"$2月$3日$1年")); /* 输出["2017-08-25?","1234/11/21?"] 08月25日2017年 hdbh-12-12 11月21日1234年 2019/211/12 2134-12-122 */
边界问题^$ (整个字符串用^开头,用$结尾) 单词的边界 b /^d{11}$/ 手机号 前瞻正向前瞻 reg(?=assert) assert断言 反向前瞻 reg(?!assert) var str="Hi Hello Hew Hz Hv"; var reg=/H(?=i|z)/g; console.log(str.replace(reg,"h"));//输出hi Hello Hew hz Hv var reg1=/H(?!e)/g; console.log(str.replace(reg1,"h"));//输出hi Hello Hew hz hv ###正则对象的属性 lastIndex 最后匹配的索引 reg.flags 修饰符(igm) var str="ab dbn ubd"; var reg=/b/g; console.log(reg.test(str));//输出2 console.log(reg.lastIndex);//输出ture console.log(reg.test(str));//输出5 console.log(reg.lastIndex);//输出ture console.log(reg.test(str));//输出9 console.log(reg.lastIndex);//输出ture console.log(reg.test(str));//输出0 console.log(reg.lastIndex);//输出false console.log(reg.flags) //输出g 修饰符(igm) console.log(reg.global) //输出ture console.log(reg.ignoreCase) //输出false console.log(reg.multiline) //输出false console.log(reg.source) //输出b 正则里的内容 正则表达式的使用test 用来查看是否存在,有则输出ture,没有则输出false exec 只找第一个 complie 用来修改正则 var str="ab dbn ubd dsjh dskj"; var reg=/b[a-z]+b/g; console.log(reg.test(str));//输出ture console.log(reg.exec(str));//输出"dbn" reg.compile("b[a-z]+b","i"); console.log(str.search(reg));//输出0 字符串的方法search("")//结果为>-1则有该字符串,为-1时则没有 split("-")//"2017-8=24" 结果为["2017","8","24"] match 返回值:如果没有找到匹配返回null,如果找到则返回一个数组 replace("is","Is")//将"is"替换成"Is",只能替换1次,想替换n次,则写n次。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |