如果单词的第一个字符匹配,则搜索字符串以查找字符串列表中任何单词的出现以及高亮匹配单词.Javascript正则表达式

时间:2016-05-11 18:23:47

标签: javascript regex

点击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

1 个答案:

答案 0 :(得分:0)

将创建正则表达式的函数更改为以下

function buildRegexFor(find) {
    return '(\\b' + find +')';
}

只会突出显示字符串的出现位置,如果它们位于单词的开头或单词本身。如果我理解你的问题,那就是你需要的。

由于

伞兵