正则表达式怎么匹配非链接内容?s="1<a href='1'>2</a>3";s.replace( /(?!<a href='1'>).*?(?!<\/a>)/gi, " " );这只是个示例,目的是将不是链接中的其它内容按规则替换掉。谢谢。

解决方案 »

  1.   

    bbbbbbbbbbaaaaaaaaaaaaccccccccc<a href="1.htm">aaaaaaaa</a>dddddddd
    把其中没有链接的a都替换掉。
    替换成:
    bbbbbbbbbb ccccccccc<a href="1.htm">aaaaaaaa</a>dddddddd
      

  2.   

    bbbbbbbbbbaaaaaaaaaaaaccccccccc<a href="1.htm">aaaaaaaa</a>dddddddd
    除了<a href="1.htm">aaaaaaaa</a>其他都不是啊~
      

  3.   

    var i = "bbbbbbbbbbaaaaaaaaaaaaccccccccc<a href=\"1.htm\">aaaaaaaa</a>dddddddd";
    alert(i.replace(/(?:[^<]|<[^a])*(<a[^>]*>.*?<\/a>)(?:[^<]|<[^a])*/ig,"$1"));
    留下的是连接内的东西至于你说只替换aaaa而不替换bbb ccc 我不理解什么意思~~
      

  4.   

    呵呵。
    比如:
    bbaacc<a href="1.htm">aa</a>dd
    把其中没有链接的a都替换掉1。
    替换成:
    bb11cc<a href="1.htm">aa</a>dd
      

  5.   

    那bb cc dd是什么
    aa是不是说 链接内外的内容是一样的 一个是在链接内 一个是在链接外啊
      

  6.   

    是的,这就是一段文本,内容是不定,可能是各种各样内容。aa bb cc dd这些都是不定的字符,不是特定的。
    至于a替换成1,也有可能是b替换3,这个是变量,先不管他,暂且约定,只把a字符替换1。
    主要意思是链接内的不替换,只替换链接外的内容,也就是说这里面的a就不替换了。
      

  7.   

    aa[^<a>a*</a>]
    bbaacc<a href="1.htm">aa</a>dd
    -----------------------------------
    [  0]: bb
    [  1]: c<a href="1.htm">aa</a>dd
      

  8.   

    然后再接起来字符串str[0]+"你要换的字符"+str[1]
    不知道是不是楼主想要的,看你说的不明白