2010-03-11 11 views
111

¿Cómo puedo escapar de un ' (comilla simple) en JavaScript?¿Cómo puedo escapar de una sola cita?

Aquí es donde yo estoy tratando de usarlo:

<input type='text' id='abc' value='hel'lo'> 

El resultado del código anterior es "hel" poblada en el cuadro de texto. Intenté reemplazar 'con \', pero esto es lo que obtendré.

<input type='text' id='abc' value='hel\'lo'> 

El resultado del código anterior es "hel \" rellenado en el cuadro de texto.

¿Cómo puedo escapar con éxito las comillas simples?

+0

Hey Ravi, esto es más de una pregunta html. Rehice la pregunta como HTML, pero es posible que desee cambiar eso en su pregunta. –

Respuesta

224

usted podría utilizar entidades HTML:

  • &#39; para '
  • &#34; para "
  • ...

Para más información, se puede echar un vistazo a Character entity references in HTML.

+38

¿Por qué * debería * uno usar comillas dobles para valores de atributo? – Gumbo

+0

aahhhh !! .. No puedo siquiera pensar en esto. Muchas gracias. :) – Ravi

+0

HUmph; Supongo que * debería * haber dicho * podría *, ya que ayuda, en este caso específico, pero no es necesariamente necesario ;; Todavía, a * (en mi opinión) * buena razón sería que está más cerca de XHTML. –

-1

Usted podría tratar de usar: &#145;

1

probablemente la manera más fácil:

<input type='text' id='abc' value="hel'lo"> 
42

Puede usar &apos; (que es dudoso en IE) o &#39; (que debería funcionar en todas partes). Para obtener una lista completa, consulte W3C HTML5 Named Character References o HTML entities table on WebPlatform.org.

+0

Guau, ha pasado un tiempo desde que escribí esto. Gracias por captarlo. He actualizado los enlaces a dos tablas en W3C y WebPlatform.org. –

+0

Funcionan "en todas partes" excepto en VXML Atributos de expresión donde es necesario seguir escapando ya que en VXML un valor de variable String se indica como comillas simples dentro de las comillas dobles normales de las definiciones de atributos:

7

Como estás en el contexto de HTML, necesitas usar HTML para representar a ese personaje. Y para el HTML es necesario utilizar un (hexadecimal &#x27;) numeric character reference&#39;:

<input type='text' id='abc' value='hel&#39;lo'> 
+0

pero no entendí a qué te refieres con' context of html'? –

+0

@coding_idiot Eche un vistazo a los diferentes [tokens que un analizador HTML puede encontrar durante el proceso de análisis] (http://www.w3.org/TR/html5/syntax.html#tokenization). Cada estado tiene un conjunto diferente de reglas de análisis que se activan en función de la entrada. No todos los estados permiten referencias de personajes. Ahora, si nos fijamos en el [valor del atributo (comillas simples)] (http: //www.w3.org/TR/html5/syntax.html#attribute-value- \ (single-quoted \) -state), puede ver que un '&' denota el comienzo de una referencia de personaje. – Gumbo

5

representarlo como entidad de texto (ASCII 39):

<input type='text' id='abc' value='hel&#39;lo'> 
Cuestiones relacionadas