italicRegx = /<(i|em)>/g;
alert(italicRegx.test("<i>The Second</i>"));
alert(italicRegx.test("<i>The Second</i>"));
alert(italicRegx.test("<i>The Second</i>"));
alert(italicRegx.test("<i>The Second</i>"));
alert(italicRegx.test("<i>The Second</i>"));
alert(italicRegx.test("<i>The Second</i>"));
alert(italicRegx.test("<i>The Second</i>"));
alert(italicRegx.test("<i>The Second</i>"));
alert(italicRegx.test("<i>The Second</i>"));
alert(italicRegx.test("<i>The Second</i>"));结果是true,false,true,false,true,false.....
alert(italicRegx.test("<i>The Second</i>"));
alert(italicRegx.test("<i>The Second</i>"));
alert(italicRegx.test("<i>The Second</i>"));
alert(italicRegx.test("<i>The Second</i>"));
alert(italicRegx.test("<i>The Second</i>"));
alert(italicRegx.test("<i>The Second</i>"));
alert(italicRegx.test("<i>The Second</i>"));
alert(italicRegx.test("<i>The Second</i>"));
alert(italicRegx.test("<i>The Second</i>"));
alert(italicRegx.test("<i>The Second</i>"));结果是true,false,true,false,true,false.....
解决方案 »
- jquery获取select对象集合
- 懂extjs的帮忙解决个问题
- jquery.validata.js里面像乱码似的东西是什么?
- !!急,怎么给图片加上文字!
- IE和FireFox的脚本区别
- 求助阿!!!~~~~~js里动态参数的问题
- 有一不解,以下结果为什么不对?for( var i = 0; i < o.childNodes.length; i ++ ){ alert( "childNode:" + o.childNodes[ 0 ].outerHTML
- jquery accordion 动态增加内容,效果就不显示了
- GridPanel 显示/隐藏列问题
- 有什么辦法讓瀏覽器地址欄顯示指定的地址而不是自動顯示的地址?
- 大家好,我想问一下在jQuery中如何获取上一个网页传过来的request.querystring的值
- html超链接以新窗口打开处理方法
alert(italicRegx.test("<i>The Second</i>"));
alert(italicRegx.test("<i>The Second</i>"));
alert(italicRegx.test("<i>The Second</i>"));
alert(italicRegx.test("<i>The Second</i>"));
alert(italicRegx.test("<i>The Second</i>"));
alert(italicRegx.test("<i>The Second</i>"));
alert(italicRegx.test("<i>The Second</i>"));
alert(italicRegx.test("<i>The Second</i>"));
alert(italicRegx.test("<i>The Second</i>"));
alert(italicRegx.test("<i>The Second</i>"));
这样就ok
alert("<i>The Second</i><i>The Second</i>".replace(/<(i|em)>/g,""));
alert("<i>The Second</i><i>The Second</i>".replace(/<(i|em)>/g,""));
alert("<i>The Second</i>".replace(/<(i|em)>/g,""));
alert("<i>The Second</i>".replace(/<(i|em)>/g,""));
但如果是test,则结果就可能不同.但test的目的,只是为了知道"有没有",而不是"有多少",所以就不应加/g这个flag了.
alert("<i>The Second</i><i>The Second</i>".replace(/<(i|em)>/g,""));
alert("<i>The Second</i><i>The Second</i>".replace(/<(i|em)>/g,""));
alert("<i>The Second</i><i>The Second</i>".replace(/<(i|em)>/,""));
alert("<i>The Second</i><i>The Second</i>".replace(/<(i|em)>/,""));
第二次匹配时,italicRegx.test("<i>The Second</i>")从lastIndex为3的‘T’开始匹配由于没有匹配成功,匹配结束,lastIndex置为0,下次从0开始匹配。所以第三次为true,后面类推。
解决方法:
1、在每次匹配前,将italicRegx的lastIndex置0即可。
2、在匹配前,把italicRegx compile 下。
3、每次匹配时用 /<(i|em)>/g来匹配,因为/<(i|em)>/g将每次都产生一个新的RegExp对象,其lastIndex为初始值0。
4、没必要用 g的地方,去掉。