我正在尝试替换引号:
str = '“I don’t know what you mean by ‘glory,’ ” Alice said.';
使用:
str.replace(/['"]/g,'');
为什么它不起作用?我怎么能这样做?
答案 0 :(得分:48)
您可能必须(或更喜欢)使用Unicode转义符:
var goodQuotes = badQuotes.replace(/[\u2018\u2019]/g, "'");
这是有趣的单引号;双引号的代码是201C和201D。
编辑 - 从而完全取代所有花哨的引号:
var goodQuotes = badQuotes
.replace(/[\u2018\u2019]/g, "'")
.replace(/[\u201C\u201D]/g, '"');
答案 1 :(得分:3)
它不起作用,因为您尝试替换ASCII撇号(或单引号)并使用空字符串引用字符,而源字符串中的实际内容不是&#39 ; t ASCII字符。
str.replace(/[“”‘’]/g,'');
作品。
答案 2 :(得分:0)
现在有了一个名为“ SmartQuotes”的库,它将正确地用漂亮的印刷者的智能引号替换标准编码器的引号/撇号-比使用更简单的搜索和替换更好开/关正确。
答案 3 :(得分:-2)
我知道这是一个老问题。只想添加一些东西。 您尝试替换的报价称为"智能报价"。
以下功能涵盖了大部分内容
public static String replaceSmartQuotes(String str) {
String retVal = str;
retVal = retVal.replaceAll( "[\u2018\u2019\u201A\u201B\u2032\u2035]", "'" );
retVal = retVal.replaceAll("[\u201C\u201D\u201E\u201F\u2033\u2036]","\"");
return retVal;
}
希望这有助于某人。