思路
思路也非常简单,用正则匹配结果就行。例如,关键词bj,拿来匹配的正则应该是/(.)(b)(.)(j)(.)/i,忽略大小写。
观察目标正则的规律,发现也很简单:
1. 在每次关键字之间插入:)(.)(
2. 然后头是:(.)(
3. 尾是:)(.)
4. 然后new RegExp生成个正则就行
实现代码
//拼接需要查找的字符模板
function generReg(valo) {
return new RegExp('(.*)(${val.split('').join(')(.*)(')})(.*)','i');
}
// 简易版
function generReg(val) {
let head = '(.*)('
let tail = ')(.*)'
let body = val.split('').join(')(.*)(')
return new RegExp(head + body + tail,'i')
}