2012-02-22 13 views

Respuesta

4

No funciona porque está intentando reemplazar el apóstrofo ASCII (o comillas simples) y comillas los caracteres con la cadena vacía, cuando lo que está realmente en la cadena fuente no son caracteres ASCII.

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

funciona.

+0

Gracias! Agradable y fácil) – dokondr

36

Puede que tenga que (o si prefiere) utilizar Unicode escapa:

var goodQuotes = badQuotes.replace(/[\u2018\u2019]/g, "'"); 

Eso es para comillas simples divertidos; los códigos para comillas dobles son 201C y 201D.

edición — así a sustituir por completo toda las cotizaciones de lujo:

var goodQuotes = badQuotes 
    .replace(/[\u2018\u2019]/g, "'") 
    .replace(/[\u201C\u201D]/g, '"'); 
+0

>>> str.replace (/ [\ u2018 \ u2019]/g, "#"); Resultados en: "" No sé a qué te refieres con # gloria, # "dijo Alice." – dokondr

+0

Derecha. ¿Por qué pones "#" en la cadena de reemplazo? Si desea reemplazar ambos tipos de citas, necesitará dos llamadas a '.replace()'. Actualizaré la respuesta. – Pointy

+11

Puede ampliar este script con lo siguiente, que reemplaza los guiones y las elipses que obtiene en los cuadros de texto al pegar desde Word, etc. \t \t \t '.replace (/ [\ u2013 \ u2014]/g, '-') \t \t \t .replace (/ [\ u2026]/g, '...') ' –

0

Sé que esto es una cuestión de edad. Solo quiero agregar algo. Las citas que está intentando reemplazar se llaman "Cotizaciones inteligentes".

La función de abajo cubre la mayor parte de ellos

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; 
} 

Espero que esto ayude a alguien.

+2

' \ u2032, \ u2033, \ u2035, \ u2036' son ** citas ** inteligentes. Son primos y se usan para [fines] completamente diferentes (https://en.wikipedia.org/wiki/Prime_ (symbol)). Por lo tanto, aunque lo anterior reemplazaría todas las comillas inteligentes, lo anterior también reemplazaría cualquier uso legítimo de los personajes principales. – kgryte

+5

Las cadenas de JavaScript no tienen el método 'replaceAll'. Este código está escrito en Java y no funcionaría en JavaScript. –

Cuestiones relacionadas