有关正则表达式的Js方法(replace)

整理一下最近经常使用的几个有关正则的js方法

replace

语法:stringObject.replace(regexp/substr,replacement)

用法1 const str='abc1314520def'; str.replace(/\D/g,'');/*\D非数字,g全局匹配,每一个地方都匹配一次*/ 结果: '1314520' 用法2: str.replace('abc','');/*直接用字符串匹配*/ 结果: '1314520def' 用法3: str.replace(/\D/g,function(rs){return rs.toUpperCase()}) 结果: 'ABC1314520DEF'
/*第二个参数可传入函数,会对每一个匹配到的字符串'rs'作一次处理,而后你能够将结果return 出来*/ 进阶用法:将网址查询的search部分转化为键值对(就是url问号后面的东西) function parseURL(url=window.location.href){/*es6语法直接设置默认值*/   const search = url.substr(url.indexOf('?')+1);   const obj={};   search.replace(/([^&=]+)=([^&=]*)/g,function(rs,$1,$2){     obj[decodeURIComponent($1)]=decodeURIComponent($2)   })   return obj } $1——$99就是匹配第1到第99个子表达式的文本,表达式1:'([^&=]+)',表达式2:'([^&=]*)'等等*/
/*这里咱们没有用到rs 只是为了占位而已,由于第一个参数默认为rs*/
相关文章
相关标签/搜索