亲测有效!!!
使用正则判断URL地址的合法性
function isURL(str_url) { // 验证url
var strRegex = "^((https|http){1}://)" +
"(([0-9]{1,3}\.){3}[0-9]{1,3}" // IP形式的URL- 199.194.52.184
+ "|" // 允许IP和DOMAIN(域名)
+ "([0-9a-z_!~*'()-]+\.){1}" // 域名- www.
+ "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\." // 二级域名
+ "[a-z]{2,6})" // first level domain- .com or .museum
+ "(:[0-9]{1,4})?" // 端口- :80
+ "((/?)|" // a slash isn't required if there is no file name
+ "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$";
var re = new RegExp(strRegex);
return re.test(str_url);
}
let url = "https://www.baidu.com"
console.log(isURL(url))
使用正则匹配相应字符,并实现标红的效果
let searchMatch = (searchContent,dataContent) => {
// 字符 过滤
var regSign = /["',,。/、\]\[【】\n!!??——_<>%~^;‘’;)《()》(&+=`“”·*#@@]/g
// 去除一些不必要的字符
let currentQueStr = searchContent.replace(regSign,"")
// 匹配英文单词 和 中文 和 数字
let currentQueArr = currentQueStr.match(/[a-z]+[\-\']?[a-z]*|[\u4e00-\u9fa5]|(-?\d+)(\.\d+)?/ig);
// 去重
currentQueArr = Array.from(new Set(currentQueArr))
// 排序
currentQueArr.sort((a,b) => {return b.length - a.length})
let result = dataContent.map((ele,index) => {
ele.noHilightQuestion = ele.question
currentQueArr.forEach((item,i) => {
//创建表达式,不区分大小写, 全局替换
var reg = new RegExp("(" + item + ")", "ig");
//对匹配的结果加入标记
ele.question = ele.question.replace(reg,"█$1▌")
})
ele.question = ele.question.replace(/█/g,"<span style='color: red;'>")
ele.question = ele.question.replace(/▌/g,"</span>")
return ele
})
return dataContent
}