点击here 这适用于[substring of word] [匹配]。理想情况下,子字符串不匹配。
如果搜索到的单词第一个字符与要搜索的字符串列表中的任何单词的第一个字符匹配。 匹配的字符应突出显示
// Core function
function buildRegexFor(find) {
return '(' + find + ')';
}
// Handle button click event
document.querySelector('button').onclick = function () {
// (1) read input
var find = document.querySelector('input').value;
var str = document.querySelector('textarea').value;
// (2) build regular expression using above function
var regexStr = buildRegexFor(find);
// (3) apply regular expression to text and highlight all found instances
str = str.replace(new RegExp(regexStr, 'g'), "<strong class='boldtxt'>$1</strong>");
// (4) output
document.querySelector('span').textContent = regexStr;
document.querySelector('div').innerHTML = str;
};
.boldtxt {
color: red;
}
Value to find:
<br>
<input value="eter">
<br>
<button>find</button>
<br> Text to find in:
<br>
<textarea cols=40>meter parameter eter water twitter eternal</textarea>
<br> Regex: <span></span>
<br>
<div></div>
单词也可以包含特殊字符,如果匹配则必须突出显示。 下面是我试图实现的一段代码。 eter nal只是应突出显示 eter 的字词,而不应突出显示Meter和Parameter中的 eter 。
答案 0 :(得分:0)
将创建正则表达式的函数更改为以下
function buildRegexFor(find) {
return '(\\b' + find +')';
}
只会突出显示字符串的出现位置,如果它们位于单词的开头或单词本身。如果我理解你的问题,那就是你需要的。
由于
伞兵