Javascript 替换方法不';行不通

Javascript 替换方法不';行不通,javascript,Javascript,我想将智能引号(如“,”,“和”替换为常规引号。此外,我还想替换)、®和™。我使用了以下代码。但这没用。 请帮我解决这个问题 str.replace(/[“”]/g, '"'); str.replace(/[‘’]/g, "'"); 使用: 或者用一句话来表达: str = str.replace(/[“”]/g, '"').replace(/[‘’]/g,"'"); 在JavaScript中(和许多其他语言一样),字符串是不可变的-字符串“替换”方法实际上只是返回新字符串,而不是原地修改字

我想将智能引号(如
替换为常规引号。此外,我还想替换
®
。我使用了以下代码。但这没用。
请帮我解决这个问题

str.replace(/[“”]/g, '"');
str.replace(/[‘’]/g, "'");
使用:

或者用一句话来表达:

str = str.replace(/[“”]/g, '"').replace(/[‘’]/g,"'");
在JavaScript中(和许多其他语言一样),字符串是不可变的-字符串“替换”方法实际上只是返回新字符串,而不是原地修改字符串

for
replace
说明:

返回一个新字符串,该字符串包含替换的模式的部分或全部匹配项

此方法不会更改调用它的字符串对象。它只返回一个新字符串


replace返回结果字符串

str = str.replace(/["']/, '');

OP没有说明它为什么不工作,但似乎存在与文件编码相关的问题。如果我有一个ANSI编码的文件,并且我有:

var s = "“This is a test” ‘Another test’";
s = s.replace(/[“”]/g, '"').replace(/[‘’]/g,"'");
document.writeln(s);
我得到:

"This is a test" "Another test"
我将编码转换为UTF-8,修复了智能引号(当我更改编码时,智能引号中断),然后转换回ANSI,问题就消失了

请注意,当我将此页面上的双引号和单引号复制并粘贴到测试文档(ANSI编码)中并运行以下代码时:

var s = "“This is a test” ‘Another test’";
for (var i = 0; i < s.length; i++) {
    document.writeln(s.charAt(i) + '=' + s.charCodeAt(i));
}
var s=“”这是一个测试“‘另一个测试’”;
对于(变量i=0;i

要查找您可能需要的其他ASCII值,请检查。

另请参见:Jon,我仍然有相同的问题。Babu,我刚刚测试了Jon的代码。它工作正常。您能更具体一点吗?新的代码示例?这是我的代码示例。itemObject.setValue(itemObject.getValue().replace(/[“”]/g,“)。replace(/[“”]/g,“”));它是否适用于其他角色?例如,尝试将X和X替换为Z。这可能是字符编码问题。您在代码中使用什么编码?您的数据使用什么编码?
function unSmartQuotify(n){
    var name = n;
    var apos = String.fromCharCode(39);
    while (n.indexOf("'") > -1)
        name = name.replace("'" , apos);
    return name;
}