【问题标题】:Javascript - Remove '\n' from stringJavascript - 从字符串中删除 '\n'
【发布时间】:2016-03-29 14:16:34
【问题描述】:
var strObj = '\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n{"text": true, ["text", "text", "text", "text"], [{ "text", "text" }]}\n\n\n'

我正在尝试通过删除\n 来清理字符串,但是当我执行.replace(/\\\n/g, '') 时,它似乎没有捕捉到它。我也谷歌搜索了一下,发现:

..根据 JavaScript 正则表达式语法,您的正则表达式文字中需要两个反斜杠字符,例如 /\\//\\/g

但即使我测试表达式只是为了捕捉反斜杠,它也会返回 false: (/\\\/g).test(strObj)

RegEx 测试器正确捕获\nhttp://regexr.com/3d3pe

【问题讨论】:

标签: javascript regex


【解决方案1】:

应该是

.replace(/\n/g, '')

除非字符串实际上是

'\\n\\n\\n...

应该是这样的

.replace(/\\n/g, '')

【讨论】:

    【解决方案2】:

    这里不需要使用正则表达式,使用String#trim删除前导和尾随空格。

    var strObj = '\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n{"text": true, ["text", "text", "text", "text"], [{ "text", "text" }]}\n\n\n';
    var trimmedStr = strObj.trim();
    
    console.log('Before', strObj);
    console.log('--------------------------------');
    console.log('After', trimmedStr);
    document.body.innerHTML = trimmedStr;

    【讨论】:

    • 这比正则表达式答案 IMO 更可取
    【解决方案3】:

    你不需要反斜杠。

    var strObj = '\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n{"text": true, ["text", "text", "text", "text"], [{ "text", "text" }]}\n\n\n';
    
    strObj.replace(/\n/g, '');
    

    此代码按预期工作。

    "{"text": true, ["text", "text", "text", "text"], [{ "text", "text" }]}"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多