JS 对变量进行全文替换方法

需求:展示物流信息节点,在物流状态数据中找到手机号并设置不同样式拼接到页面

方法:
selectPhoneNumber(str) {
var regx = /(1[3|4|5|7|8][\d]{9}|0[\d]{2,3}-[\d]{7,8}|400[-]?[\d]{3}[-]?[\d]{4})/g;
var phoneNums = str.match(regx);
if (phoneNums) {
for (var i = 0; i < phoneNums.length; i++) {
var temp = phoneNums[i];
str = str.replace(
new RegExp(temp, "g"),
"<span style='color: #2878FF;>" + temp + ""
);
}
}
return str;
},
正常字符串替换用法:
把 a 替换成 b:
string.replace("a","b");//只能替换第一个匹配的
string.replace(/a/g,"b");正则加个参数 g ,表示全文匹配。
想要替换接口传过来的变量key
string.replace(/key/g,"b"); // 这样写是不行的,变量 key 传不到正则里面去

先找 replace 替换变量,有说用加号拼接正则的,好像也失败了
string.replaceAll(key,"b"); java 有个 replaceAll() 方法,但是js 没有

http://www.jb51.net/article/40269.htm
文章的最后,给出了 JS 里面正则表达式的另一个使用方法,那就是:
string.replace(new RegExp(key,'g'),"b");
利用 JS 的 RegExp 对象,将 g 参数单拿了出来,同时,正则的内容可以用变量来代替了!!!!

posted @ 2020-10-27 21:04  然然初心未改  阅读(269)  评论(0编辑  收藏  举报