如何替换或编码JavaScript中的单引号和右双引号?

How to replace or encode single and right double quotation mark in JavaScript?

我有字符串包含此 “No.” 正如您所见,这不是普通的双引号。我尝试使用 replace 像这样

手动编码

var stmt = "select “No.”";
stmt = stmt.replace('“', '\u201c');
stmt = stmt.replace('”', '\u201d');

console.log(stmt);

但是当我记录 stmt 时,我发现根本没有任何变化并记录此 “No.”。如何在 Javascript 中编码这些特殊字符?我正在使用 sequelize 将此语句插入数据库并需要对其进行编码以在 JSON 字符串中正确显示,因此最终结果应为 \u201cNo.\u201d

无需使用 unicode 引用。只需像往常一样在单引号内传递引号。

var stmt = "select “No.”";
stmt = stmt.replace('“', '"');
stmt = stmt.replace('”', '"');

console.log(stmt);

1) 最好使用正则表达式一次替换所有字符 /“|”/g:

var stmt = "select “No.”";
stmt = stmt.replace(/“|”/g, '"');

console.log(stmt);

2) 你也可以在这里使用 replaceAll 作为:

var stmt = "select “No.”";
stmt = stmt.replaceAll(/“|”/g, '"');

console.log(stmt);

3) 您也可以使用其 unicode 值替换它:

var stmt = "select “No.”";
stmt = stmt.replaceAll(/\u201C|\u201D/g, '"');

console.log(stmt);

需要使用转义符\来防止JS将“\u201c”和“\u201d”解释为unicode字符

检查这个:


var stmt = "select “No.”";
stmt = stmt.replace('“', '\u201c');
stmt = stmt.replace('”', '\u201d');

console.log(stmt);