return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1") + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<strong>$1</strong>");
autoComplete里的一段代码,作用是把匹配的字符高亮显示.
但是具体的正则有点不明白.想学习一下.谁能详细解释一下吗
return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1") + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<strong>$1</strong>");
autoComplete里的一段代码,作用是把匹配的字符高亮显示.
但是具体的正则有点不明白.想学习一下.谁能详细解释一下吗
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答855 阅读✓ 已解决
3 回答1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
(?![^&;]+;) 不是 非&;加上一个;的位置
(?!<[^<>]*) 不是<后面带一串非<>的位置
([\^\$\(\)\[\]\{\}\*\.\+\?\|\\]) 找出[]中这些正则标记
(?![^<>]*>) 不是一些非<>字符后面加一个>的位置