keyword = '电视   电    视频  tv'
str =‘电视电视片tvtv 电视视频’我将keyword 里分成 “电视”,“电”,“视频”,“tv”
然后匹配str 里的内容
将匹配到的就显示红色
我能用keyword 做一个正则表达式吗?

解决方案 »

  1.   

    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>test</title>
    </head><body>
    电视电视片tvtv 电视视频
    </body>
    <script>
    var content = document.body.innerHTML;
    var keyword = '电视  电    视频  tv';
    keyword = keyword.replace(/( +)/g,"|");
    content = content.replace(eval("/("+keyword+")/g"),"<font color=red>$1</font>");
    document.body.innerHTML = content;
    </script>
    </html>
      

  2.   


    RegExp.escape = function(str) {
    return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
    };Array.prototype.map = function(trans) {
    var result = [];
    for (var i=0; i<this.length; i++)
    result.push(trans(this[i], i, this));
    return result;
    };var keyword = '电视  电    视频  tv';var regex = new RegExp("(?:"+(keyword||'').match(/\S+/g).map(RegExp.escape).join("|")+")(?![^<]*>)", "ig");
    html = html.replace(regex, '<span style="color:red">$&</span>');
      

  3.   

    我想问下
    keyword = keyword.replace(/( +)/g,"|");
    这句有什么作用的。。
    如果我想用 空格 或者 /这个要怎样写?
      

  4.   

    作用:将空格分隔符号用|替代
    如果我想用 空格 或者 /
    修改为:keyword = keyword.replace(/([ |\/]+)/g,"|");