今天遇到了要在正则表达式中匹配变量的问题。主要问题是一段英文 我要突出显示某个单词和词组 单词和词组保存在一个数组中比方说我要把一个词组“as much”匹配出来有可能这段英文有很多重复的 as much 需要全部匹配哦

解决方案 »

  1.   

    /^(as much)${*}/
    额。。是这样的么?^表示开始,$表示结束,{*}表示0次或无限次重复..
    小弟也是初学者,斗胆试试..
      

  2.   

    /^as much$/这样也行吧?不用考虑那个重复次数.
      

  3.   

    var array = ["afdas as much asfa", "afsdaf as much afsdaf as much "];
    var regex = /as much/g
    var result = "";
    for(var i = 0 ; i < array.length  ; i ++)
    {
        result += array[i].replace(regex,function(word){return "<span style=\"color:#ff6600\">"+word+"</span>"})
        result+="</br>";
    }
    document.write(result);
      

  4.   


    <script type="text/javascript">var str="asdfasdfasd as much,fdassfdfsdaf as much123123";
    var stmp="as much";
    var re=new RegExp(stmp,"g");  
    str=str.replace(re,"<font color='red'>as much</font>");
    alert(str);
    </script>这样?
      

  5.   


    主要是需要加个变量进去如
    var array=["as much","some","about"];/^(array[i])${*}/
      

  6.   


    var regex = /as much/g  这个能把as much 替换成变量么?
    var array=["as much","some","about"];
      

  7.   

     大小写匹配的话这样就可以了
    var regex = /as much/gi
    加个i
      

  8.   

    替换变量?什么意思?array[0]这不就是一个变量吗?你数组的每一项是变量还是常量有什么区别?
      

  9.   

    动态创建正则:var re = new RegExp("pattern"[, "flags"]);var key=["love","fuck","rest"],
    str="do what you love and fuck the rest!";
    for(var i=0,len=key.length;i<len;i++){
    str=str.replace(new RegExp(key[i]),function(t){ return "<span style='color:#ff0000;'>"+t+"</span>";});
    }
    document.write(str);
      

  10.   

    var keywords = ["as much", "some", "student"];
    keywords.sort(function(i1, i2){
        return i1.length < i2.length ? 1 : -1;
    });var reg = new RegExp("(^|\\b)(" + keywords.join("|") + ")(\\b|$)", "gi");
    var txt = "比方说我要把一个词组 'i\'m a student, not a teacher', 'as much'、 'AS Much'、'Some'、'SOME' 匹配出来";
    var out = txt.replace(reg, function($0, $1, $2, $3){
        if( $2 ){
            return "<b>" + $2 + "</b>";
        }else{
            return $0;
        }
    });alert( out );