我要在一段文字中匹配一个单词如“word”,但又不想把“@word”匹配上,应该怎么做?
\b 表示:匹配的是一个词语的边界
我现在的做法是var raRegExp = new RegExp("\\bword\\b","ig");可这样做把“@word”也匹配上了。
\b 表示:匹配的是一个词语的边界
我现在的做法是var raRegExp = new RegExp("\\bword\\b","ig");可这样做把“@word”也匹配上了。
<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>
比如你这个就用var rex=/word??/
var str = "thesimplestudywordandthewordarenotcontains@wordansoon";
是应该一个都匹配不上的,我要的是var str = "word,thesimplestudyword,test,word!,@word,word";
这个str应该匹配红色部分。
var rex=/( word )+/g;
<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>
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);
请问var reg = /(^|,)(word)/ig;
这个怎么理解?
,:逗号
(^|,)(word)行首或者逗号开头 后面紧跟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都成立,那样就能达到我要的结果!
<!--
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>