var toHtml = function(val) {
if (typeof val != 'string') return '';
var entityMap = {
"&": "&",
"<": "<",
">": ">",
'"': '"',
"'": ''',
"/": '/'
};
return String(val).replace(/[&<>"'\/]/g, function (s) {
return entityMap[s];
});
}
console.log(toHtml('hhhhh'),'5555')
handleMessage = function (text) {
let urlRegex = /(?:https?:\/\/)?(?:www\.)?((?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}|(?:\d{1,3}\.){3}\d{1,3})(?:\/[a-zA-Z0-9-]+)*\??(?:[a-zA-Z0-9&\?%_.\-=,:;\~()\/]+)*/gi;
let match = text.match(urlRegex);
let handledString = ""; // 初始化处理后的字符串
if (match) {
// var lastIndex = 0;
for (let i = 0; i < match.length; i++) {
var noUrlPart = text.slice(0, text.indexOf(match[i])); // 非网址链接部分
var handlednoUrlPart = toHtml(noUrlPart); // 处理非网址链接部分
text = text.slice(text.indexOf(match[i]));
handledString += handlednoUrlPart; // 将处理后的非网址链接部分和网址链接拼接到处理后的字符串中
let dom = `<span class="message-url" data-url="${match[i]}">${match[i]}</span>`;
handledString += dom; // 将处理后的非网址链接部分和网址链接拼接到处理后的字符串中
text = text.slice(match[i].length);
}
} else {
handledString = base.toHtml(text)
}
return handledString;
};
let a = "1还好、https://www.baidu.com 2、www.baidu.com";
console.log(handleMessage(a))
console