【问题标题】:Regex to remove white spaces, blank lines and final line break in Javascript正则表达式删除 Javascript 中的空格、空行和最后的换行符
【发布时间】:2015-07-14 16:53:21
【问题描述】:

好吧,伙计们,我很难用正则表达式..

这就是我需要的...获取一个文本文件,删除这些行开头和结尾的所有空白行和空格,要删除的空白行还包括文件末尾可能的空行(全文末尾的\n)

所以我的脚本是:

quotes.replace(/^\s*[\r\n]/gm, "");

这替换得相当好,但在每一行的末尾留下一个空格并且不会删除最后的换行符。

所以我想使用这样的东西:

quotes.replace(/^\s*[\r\n]/gm, "").replace(/^\n$/, "");

第二个“替换”会从整个字符串中删除最后一个 \n(如果存在).. 但它不起作用..

所以我尝试了这个:

quotes.replace(/^\s*|\s*$|\n\n+/gm, "")

当中间有换行符时,它会删除换行符但加入一些行:

这样
1
2
3

4

将返回以下行:

[“1”、“2”、“34”]

你们能帮帮我吗?

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    因为听起来你必须在一个正则表达式中完成所有这些,试试这个:

    quotes.replace(/^(?=\n)$|^\s*|\s*$|\n\n+/gm,"")
    

    我们正在做的是创建一个不捕获任何内容的组,但会阻止换行符本身被消耗。

    【讨论】:

      【解决方案2】:

      拆分、替换、过滤:

      quotes.split('\n')
          .map(function(s) { return s.replace(/^\s*|\s*$/g, ""); })
          .filter(function(x) { return x; });
      

      输入值" hello \n\nfoo \n bar\nworld \n", 输出为["hello", "foo", "bar", "world"]

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-04-10
        • 1970-01-01
        • 2019-06-21
        • 1970-01-01
        • 2016-06-17
        • 1970-01-01
        • 1970-01-01
        • 2011-11-01
        相关资源
        最近更新 更多