【问题标题】:RegExp to unwrap XML CDATA multiline text that has <br>'s in it?正则表达式解开包含 <br> 的 XML CDATA 多行文本?
【发布时间】:2009-09-19 15:21:05
【问题描述】:

任何人都知道一个好的 reg exp 可以做到这一点,最好一次完成?它需要在每行的开头/结尾删除空格,删除 LF 和 CR 并替换为单个空格,但如果在行尾有 &lt;br&gt;(或 &lt;br/&gt;),则不应添加空格。我需要在符合 JavaScript 的正则表达式中使用它。

【问题讨论】:

    标签: javascript xml actionscript-3 actionscript


    【解决方案1】:

    我会按照这些思路使用一些东西:

    var str = '  foo<br>\nbar\nbaz \n quox\nquox';
    // split into lines
    var lines = str.split('\n');
    // iterate over each line
    for (var i = lines.length; i--; ) {
      // trim whitespace
      lines[i] = lines[i].replace(/^\s+|\s+$/g, '');
      // add whitespace at the end if string doesn't end with "<br>"
      if (!/<br>$/.test(lines[i])) lines[i] += ' ';
    }
    // concatenate into a string again
    lines.join('');
    

    【讨论】:

    • 感谢 kangax!这样就行了!虽然我认为可能有一个终极的正则表达式,但这也很好用!
    • 您会感到惊讶,但是正则表达式越大,效率通常越低 :) 通常,最好将任务分解成更小的块,让您自己和正则表达式引擎的生活更轻松。
    猜你喜欢
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多