Javascript |不能用String.replace()替换\ n

时间:2016-10-02 19:40:34

标签: javascript node.js parsing replace

我有解析网站并从数据库中获取信息的代码。 它看起来像这样:

var find = body.match(/\"text\":\"(.*?)\",\"date\"/);

结果,我有:

  

гороскопнаиюльскорпион\nштукатурканагазобетон\nподраб​​отканадень\nмицубиситюмень\nсокращениемикрорайон

然后我尝试替换\ n,但它不起作用。

var str = find[1].replace(new RegExp("\\n",'g'),"*");

我能用这个做什么?

3 个答案:

答案 0 :(得分:4)

看起来您想要替换文本\n,即反斜杠后跟n,而不是换行符。

在这种情况下,您可以尝试

var str = find[1].replace(/\\n/g, "*");

或不太可读的版本

var str = find[1].replace(new RegExp("\\\\n", "g"), "*");

在正则表达式中,字符串\n与换行符匹配。要匹配反斜杠字符,我们需要通过在其前面加上另一个反斜杠来“转义”它。正则表达式中的\\\字符匹配。类似地,在JavaScript字符串文字中,\是转义字符,因此当我们编写new RegExp("\\\\n", "g")时,我们需要再次转义正则表达式中的两个反斜杠。

答案 1 :(得分:1)

在控制台中工作!

此处全局工作,适用于两种类型的换行符:

find[1].replace(/\r?\n/g, "*")

如果你不想更换'\ r',你可以简单地从正则表达式中删除它。

答案 2 :(得分:0)

删除所有3种换行符

var s = find [1] .replace(/(\ r \ n | \ n | \ r)/ gm,“-”);