Javascript | 无法用String.replace()replace\ n

我有parsing网站,并从数据库中获取信息的代码。 这是这样的:

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

结果,我有:

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

然后,我尝试更换\ n,但它不工作。

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

我能用这个做什么?

它看起来像你想要replace文本\n ,即一个反斜杠后面跟一个n ,而不是一个换行符。

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

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

或可读性较差的版本

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

在正则expression式中,string\n匹配一个换行符。 要匹配一个反斜杠字符,我们需要通过在另一个反斜杠之前来“逃避”它。 在正则expression式中匹配一个\字符。 同样,在JavaScriptstring文字中, \是转义字符,所以当我们编写new RegExp("\\\\n", "g")时,我们需要再次在正则expression式中反转两个反斜杠。

在控制台中工作!

这里可以在全球范围内使用,可以在两种types的换行符上使

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

如果你不想'\ r'被replace,你可以简单地从正则expression式中删除。