我正在使用一种方法迭代地在字符串中执行替换。
function replaceAll(srcString, target, newContent){
while (srcString.indexOf(target) != -1)
srcString = srcString.replace(target,newContent);
return srcString;
}
但它对我想要的目标文本不起作用,主要是因为我无法想到如何正确地写出该文本:我想要删除的是字面上的"\n"
,(包括逗号和引号),那么作为第二个参数传递什么才能使其正常工作?
提前致谢。
答案 0 :(得分:7)
如果对replace
'some text "\n", more text'.replace("\"\n\",", 'new content');
或者你可以做
'some text "\n", more text'.replace('"\n",', 'new content');
注意在第二个示例中,replace的第一个参数使用单引号来表示字符串,因此您不需要转义双引号。
最后,还有一个选项是在replace
调用
'some text "\n", more text "\n",'.replace(/"\n",/g, 'new content');
末尾的“g”使得替换为全部替换(全局)。
答案 1 :(得分:4)
要删除"\n"
,只需使用String.replace
:
srcString.replace(/"\n"[,]/g, "")
您可以使用正则表达式/"\n"[,]/g
答案 2 :(得分:2)
不需要这样的功能。 replace函数有一个额外的参数g
,它替换所有出现而不是第一个:
'sometext\nanothertext'.replace(/\n/g,'');
答案 3 :(得分:0)
无论字符串中的引号是否被转义:
var str = 'This string has a "\n", quoted newline.';
或
var str = "This string has a \"\n\", escaped quoted newline.";
解决方案是相同的(将'!!!'更改为要替换"\n",
的内容:
str.replace(/"\n",/g,'!!!');