在javascript字符串中写双引号

时间:2012-08-07 13:04:26

标签: javascript regex string replace double-quotes

我正在使用一种方法迭代地在字符串中执行替换。

function replaceAll(srcString, target, newContent){
  while (srcString.indexOf(target) != -1)
  srcString = srcString.replace(target,newContent);
  return srcString;
}

但它对我想要的目标文本不起作用,主要是因为我无法想到如何正确地写出该文本:我想要删除的是字面上的"\n",(包括逗号和引号),那么作为第二个参数传递什么才能使其正常工作?

提前致谢。

4 个答案:

答案 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,'!!!');

jsFiddle Demo