js从富文本中找出固定电话、手机号码、邮箱并添加上链接。

时间:2023-03-09 00:39:23
js从富文本中找出固定电话、手机号码、邮箱并添加上链接。
function richtextfindtel(value) {
/*固定电话、手机号码、邮箱*/
var tempValue = value.replace(/<[^>]+>/g, "");
var arrMatch = tempValue.match(/[0-9a-z][0-9a-z\-\_\.]+@([0-9a-z][0-9a-z\-]*\.)+[a-z]{2,}|0[0-9]{2,3}-{0,1}[2-9][0-9]{6,7}|[0-9]+/g);
//按长度排序,避免被提前替换
for (var i = 0; i < arrMatch.length; i++) {
for (var j = i + 1; j < arrMatch.length; j++) {
if (arrMatch[i].length < arrMatch[j].length) {
var tmp = arrMatch[i];
arrMatch[i] = arrMatch[j];
arrMatch[j] = tmp;
}
}
}
for (var match in arrMatch) {
var t = arrMatch[match];
var replacev = '';
//邮箱
if (/^[0-9a-z][0-9a-z\-\_\.]+@([0-9a-z][0-9a-z\-]*\.)+[a-z]{2,}$/.test(t)) { replacev = '<a href="javascript:;" onclick="event.stopPropagation();mailto:' + t + '">' + t + '</a>';
}
//固定电话
if (/^0[0-9]{2,3}-{0,1}[2-9][0-9]{6,7}$/.test(t)) {
replacev = '<a href="javascript:;" onclick="event.stopPropagation();tel:' + t + '">' + t + '</a>';
}
//手机号码
else if (/^1[34578]\d{9}$/.test(t) || /^\d{7,8}$/.test(t)) {
replacev = '<a href="javascript:;" onclick="event.stopPropagation();tel:' + t + '">' + t + '</a>';
}
else {
}
var reg = new RegExp("(?!<a .*?>.*?)" + t + "(?![^<]*<\/a>)", "gmi");
value = value.replace(reg, replacev);
}
return value;
}