需求:展示物流信息节点,在物流状态数据中找到手机号并设置不同样式拼接到页面
方法:
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 参数单拿了出来,同时,正则的内容可以用变量来代替了!!!!