我要在一段文字中匹配一个单词如“word”,但又不想把“@word”匹配上,应该怎么做?
\b 表示:匹配的是一个词语的边界
我现在的做法是var raRegExp = new RegExp("\\bword\\b","ig");可这样做把“@word”也匹配上了。

解决方案 »

  1.   


    <script type="text/javascript">
    <!--
    var str = "thesimplestudywordandthewordarenotcontains@wordansoon";
    var reg = /[^@](word)/ig; arr = [];
    while((result = reg.exec(str))!= null){
    arr.push(result[1]);
    }
    alert(arr)
    //-->
    </script>
      

  2.   

    用惰性匹配量词后面加?
    比如你这个就用var rex=/word??/
      

  3.   

    谢谢,但你给我例子还是不能解决我的问题,我要匹配的是"word"这个单词,像这给的例子
    var str = "thesimplestudywordandthewordarenotcontains@wordansoon";
    是应该一个都匹配不上的,我要的是var str = "word,thesimplestudyword,test,word!,@word,word";
    这个str应该匹配红色部分。
      

  4.   

    那这个就够了
    var rex=/( word )+/g;
      

  5.   


    <script type="text/javascript">
    <!--
        var str = "word,thesimplestudyword,test,word!,@word,word";
        var reg = /(^|,)(word)/ig;
    str = str.replace(reg,"$1<font color='red'>$2</font>")
    document.write(str);//-->
    </script>
      

  6.   


    var str = "thesimplestudywordandthewordarenotcontains@wordansoon"; 
           var rex=/[,](word)|^word/g;
           var ret=str.match(rex);
            alert(ret);
           var str1 = "word,thesimplestudyword,test,word!,@word,word"; 
           var ret1=str1.match(rex);
          alert(ret1);
      

  7.   

    谢谢,这个可以实现了!
    请问var reg = /(^|,)(word)/ig;
    这个怎么理解?
      

  8.   

    ^:行首
    ,:逗号
    (^|,)(word)行首或者逗号开头 后面紧跟word
      

  9.   

    但现在还是没有达到我想要的结果,我要的不止是行首或者逗号开头,而是要匹配单词,也即/\bword\b/,仅仅排除“@word”!
    你给的代码实际上只是对我给的例子 str1 = "word,thesimplestudyword,test,word!,@word,word"; 成功了,
    但不能对所有的都成功,比如str1 = "this is a test!word,I want to get word,please 'word',/word ^word,%word,";
    就是想问一下,正则匹配有没有与的操作,就是让\bword\b跟^@word都成立,那样就能达到我要的结果!
      

  10.   

    js正则真麻烦...<script type="text/javascript">
    <!--
        var str = "this is a test!word,I wantword to get @word,please 'word',/word^word,%word,"; 
        var reg = /@word|(word)/ig;
        str = str.replace(reg,function (l, $1) {return ($1 ?  "<font color='red'>"+$1+"</font>" :  l);})
    document.write(str)//-->
    </script>