我有解析网站并从数据库中获取信息的代码。 它看起来像这样:
var find = body.match(/\"text\":\"(.*?)\",\"date\"/);
结果,我有:
гороскопнаиюльскорпион\nштукатурканагазобетон\nподработканадень\nмицубиситюмень\nсокращениемикрорайон
然后我尝试替换\ n,但它不起作用。
var str = find[1].replace(new RegExp("\\n",'g'),"*");
我能用这个做什么?
答案 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,“-”);