代码之家  ›  专栏  ›  技术社区  ›  Desolator

使用regex替换字符串

  •  2
  • Desolator  · 技术社区  · 16 年前

    我在“textarea”中有文本,我试图删除以下文本之间的文本: <textarea></textarea> 用一些正则表达式替换函数。以下是我迄今为止所做的:

    x = '<TEXTAREA style="DISPLAY: none" id=test name=test>teeeeessst!@#$%&*(LKJHGFDMNBVCX</TEXTAREA>';
    
    x.replace('/<TEXTAREA style="DISPLAY: none" id=test name=test>.*</TEXTAREA>/s','<TEXTAREA style="DISPLAY: none" id=test name=test></TEXTAREA>');
    
    3 回复  |  直到 12 年前
        1
  •  2
  •   Eric Wendelin    16 年前

    你可能会想要这样的东西:

    x.replace(/(<textarea[^>]*>)[^<]+(<\/textarea>)/img, '$1$2');
    

        2
  •  1
  •   Pointy    16 年前

    第一个问题是你的正则表达式有引号。应该是/regex/不带引号。在正则表达式中,你必须在正斜杠之前加一个反斜杠。

    /<TEXTAREA style="DISPLAY: none" id=test name=test>.*<\/TEXTAREA>/
    

        3
  •  0
  •   unigg    16 年前

    类似于Eric的方法,或者使用更通用的regexp。

    var re =/(\<[^<]+\>)[^<]+(<\/[^<]+>)/;
    
    x = x.replace(re, '$1$2');
    

    this tool 去做个测试。结果应输出到testarea。