Javascript基础:搜索和突出显示

Javascript基础:搜索和突出显示,javascript,replace,Javascript,Replace,我想在加载页面时突出显示div中的一个单词。我的代码是 <script type="text/javascript"> function highlight(container,what,spanClass) { var content = container.innerHTML, pattern = new RegExp('(>[^<.]*)(' + what + ')([^<.]*)','g'), replaceWith

我想在加载页面时突出显示div中的一个单词。我的代码是

<script type="text/javascript">
function highlight(container,what,spanClass) {
    var content = container.innerHTML,
        pattern = new RegExp('(>[^<.]*)(' + what + ')([^<.]*)','g'),
        replaceWith = '$1<span ' + ( spanClass ? 'class="' + spanClass + '"' : '' ) + '">$2</span>$3',
        highlighted = content.replace(pattern,replaceWith);
    return (container.innerHTML = highlighted) !== content;
}
</script>
</head>

<body onload="highlight(document.getElementById('hello'),'florida','highlight');">
<div id="hello"> Florida florida orlando orlando</div>
Florida Texus florida 
</body>

</html>

函数突出显示(容器、内容、类){
var content=container.innerHTML,

pattern=newregexp(“(>[^这是因为只有在元素周围有一些HTML标记时,您使用的代码才有效

它将在更一般的情况下工作,例如,如果您将div更改为

<div id="hello"><p> Florida florida orlando orlanodo</p></div>
以及另一种替代:

replaceWith = '<span ' + ( spanClass ? 'class="' + spanClass + '"' : '' ) + '">$1</span>'

replaceWith='我想你要找的是突出显示单词
florida
如果它是分开的,那么试试看

function highlight(container,what,spanClass) {
    var content = container.innerHTML,
        pattern = new RegExp('\\b(' + what + ')\\b','g'),
        replaceWith = '<span ' + ( spanClass ? 'class="' + spanClass + '"' : '' ) + '">$1</span>',
        highlighted = content.replace(pattern,replaceWith);

    return (container.innerHTML = highlighted) !== content;
}
函数突出显示(容器、内容、类){
var content=container.innerHTML,
pattern=newregexp('\\b('+what+')\\b','g'),

replaceWith='请参阅不建议使用regexing HTML-查看在页面中搜索“hello”时会发生什么情况
pattern = new RegExp('(>[^<.]*)?(' + what + ')([^<.]*)?','g'),
function highlight(container,what,spanClass) {
    var content = container.innerHTML,
        pattern = new RegExp('\\b(' + what + ')\\b','g'),
        replaceWith = '<span ' + ( spanClass ? 'class="' + spanClass + '"' : '' ) + '">$1</span>',
        highlighted = content.replace(pattern,replaceWith);

    return (container.innerHTML = highlighted) !== content;
}