提问人:PHP User 提问时间:11/28/2021 最后编辑:PHP User 更新时间:11/28/2021 访问量:3553
如何在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);
但是当我记录时,我发现没有任何变化并记录了这一点.如何在 Javascript 中对此类特殊字符进行编码?我用于将此语句插入数据库,并需要对其进行编码才能在 JSON 字符串中正确显示,因此最终结果应该是stmt
“No.”
sequelize
\u201cNo.\u201d
答:
1赞
GenericUser
11/28/2021
#1
无需使用 unicode 引用。只需像往常一样在单引号内传入引号即可。
var stmt = "select “No.”";
stmt = stmt.replace('“', '"');
stmt = stmt.replace('”', '"');
console.log(stmt);
评论
0赞
Yash Sonalia
11/28/2021
是的,目前您只是用引号本身替换引号,因此输出保持不变。
0赞
PHP User
11/28/2021
无论如何要编码它?Laravel 对其进行编码,因此它在前端显示相同,而无需将其转换为传统引号
0赞
GenericUser
11/28/2021
@YashSonalia,我不确定你想说什么。传入的字符与要替换的字符明显不同。
0赞
Yash Sonalia
11/28/2021
是否要记录以下内容:"select \u201cNo.\u201d"
0赞
GenericUser
11/28/2021
@PHPUser,我在主要问题中添加了一条注释,该注释显示了堆栈溢出中的类似问题。
0赞
DecPK
11/28/2021
#2
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);
2赞
Yash Sonalia
11/28/2021
#3
您需要使用转义字符 \ 来防止 JS 将 “\u201c” 和 “\u201d” 解释为 unicode 字符。
检查一下:
var stmt = "select “No.”";
stmt = stmt.replace('“', '\\u201c');
stmt = stmt.replace('”', '\\u201d');
console.log(stmt);
评论
0赞
PHP User
11/28/2021
没有,还没有尝试找出插入MySQL时的问题
1赞
PHP User
11/28/2021
记录结果将仅输出 1 个反斜杠,但它与反斜杠一起插入到 MySQL 中,所以我不得不将其编辑为 be 和另一个 replace 语句。非常感谢您的努力,我真的很感激replace('“', '\\\u201c')
上一个:如何创建随机报价生成器?
下一个:将“直引号”转换为“卷曲引号”
评论
'"'
`"`
"\""