如何替换或编码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);
我有字符串包含此 “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);