Javascript替换"'&引用;加上''&引用;

Javascript替换"'&引用;加上''&引用;,javascript,xml,string,replace,Javascript,Xml,String,Replace,我正在尝试使用replace方法将“'”字符替换为“''”字符串,如下所示: temp.replace("\'", "''"); 但它似乎并没有取代任何东西。我应该如何编写命令以将所需字符替换为所需字符串(我正试图在下一个xml中替换它): 我必须将一个替换为两个。我不能将其更改为“但更改为“”您的代码只替换了一个实例(它找到的第一个实例)。您应该替换所有实例。您可以使用正则表达式并在末尾添加一个g标志,表示“全局搜索”。如下所示: temp.replace(/'/g, "''") 下面

我正在尝试使用replace方法将“'”字符替换为“''”字符串,如下所示:

temp.replace("\'", "''");
但它似乎并没有取代任何东西。我应该如何编写命令以将所需字符替换为所需字符串(我正试图在下一个xml中替换它):



我必须将一个替换为两个。我不能将其更改为“但更改为“”

您的代码只替换了一个实例(它找到的第一个实例)。您应该替换所有实例。您可以使用正则表达式并在末尾添加一个
g
标志,表示“全局搜索”。如下所示:

temp.replace(/'/g, "''")
下面是一个工作示例:(在“输入”框中键入一些内容,然后单击“转换”)

如果您实际上试图用双引号替换单引号(而不是双引号序列),请执行以下操作:

temp.replace(/'/g, '"')

诀窍是用另一个引号字符引用每个字符串:

temp.replace(/'/g, '"');

编辑:Ben Lee关于上面更新的正则表达式是正确的。但是,我仍然认为您希望用
(一个双引号),而不是
(两个单引号)替换它。

您尝试过这个吗

temp.replace("'", "''");
问题是

temp.replace("\'", "''");
将仅替换“”的第一个实例。要解决此问题,请改为执行以下操作

temp.replace(/'/g, "''"));

这将确保它能够通过并替换单引号的所有实例,而不仅仅是第一个实例。

因此它基本上是将单引号字符更改为两个单引号字符,对吗?如果是这种情况,您可能需要在yoir正则表达式的末尾使用全局标志,
g
并将其分配回您的值(temp)


实际上,您正在尝试替换(\'),而不仅仅是单引号字符。不需要在由双引号分隔的字符串中转义单引号,因为它们并不表示字符串的结尾

替换将只替换匹配的第一个报价,除非您使用的是我们的老朋友Regexp。正则表达式的缺点是速度较慢。 我没有检查哪个更快,但您可以尝试使用split:

var chunks = temp.split("'").join("''");

test = "string cont'aining single 'quotes".split("'").join("''");//in firebug console
//returns "string cont''aining single ''quotes" as expected

这只会取代初审。在这个问题上不乏好的建议,LOL@user1176926,我在我的答案中添加了一个不同的工作示例,您可以在其中输入任何字符串来确认它是否有效。@BenLee我希望OP重新考虑并选择这个答案,因为这个答案是目前为止最好的。@Zoidberg,我甚至不在乎15个代表或被接受的答案,我只是震惊于当其他答案都更可接受时,最糟糕的选择被选为被接受。如果其他人有一个有效的答案,我会很高兴。(好吧,我承认“震惊”这个词太强了,但仍然…@BenLee是的,这个答案肯定更糟,而且它实际上不是关于销售代表的问题,而是当有人在寻找解决这个问题的方法时,出现了一个公认的解决方案。我现在有另一个问题,我正在尝试将xml保存在mssql中,但是如果得到一条错误信息,会有什么问题呢?为什么这个答案与其他更好的答案相反?另外,如果您想用双引号替换单引号,为什么问题中的原始代码在替换的第二部分中有两个单引号?哇,这被接受了?这是所有工作方案中最糟糕的一个。它既是最丑陋的,也是最没有效率的。我只是希望没有其他人有这个问题,来到这一页看到这一点,认为这是正确的方式来做,而不看其他答案。
temp = temp.replace(/'/g,"''");
while (str.indexOf("'") >= 0)
    {
        var newStr = str.replace("'", "\"");
        str = newStr;
    }
var chunks = temp.split("'").join("''");

test = "string cont'aining single 'quotes".split("'").join("''");//in firebug console
//returns "string cont''aining single ''quotes" as expected