2010-03-11 15 views
111

Come posso sfuggire a ' (virgoletta singola) in JavaScript?Come faccio a uscire da una singola offerta?

Questo è dove sto cercando di usarla:

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

Il risultato per il codice di cui sopra è "hel" popolata nella casella di testo. Ho provato a sostituire 'with \', ma questo è quello che sto ottenendo.

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

Il risultato per il codice precedente è "hel \" popolato nella casella di testo.

Come posso evitare le virgolette singole?

+0

Hey Ravi, questo è più di una questione html. Ho rimandato la domanda come HTML, ma potresti volerlo cambiare nella tua domanda. –

risposta

224

Si potrebbe usare entità HTML:

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

Per di più, si può dare un'occhiata a Character entity references in HTML.

+38

Perché * dovrebbe * utilizzare le virgolette doppie per i valori degli attributi? – Gumbo

+0

aahhhh !! .. Non posso nemmeno pensarci. Molte grazie. :) – Ravi

+0

HUmph; Immagino che * dovrei * aver detto * potrebbe *, in quanto aiuta, in questo caso specifico, ma non è necessariamente necessario ;; ancora, un * (secondo me) * una buona ragione sarebbe che è più vicino all'XHTML. –

-1

Si potrebbe provare a utilizzare: &#145;

1

Probabilmente il modo più semplice:

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

È possibile utilizzare &apos; (che è iffy in IE) o &#39; (che dovrebbe funzionare ovunque). Per un elenco completo, vedere W3C HTML5 Named Character References o HTML entities table on WebPlatform.org.

+0

Wow, è passato un po 'di tempo da quando ho scritto questo. Grazie per averlo preso: ho aggiornato i collegamenti a due tabelle su W3C e WebPlatform.org. –

+0

Questi funzionano "ovunque" tranne negli attributi di espressione VXML dove è necessario eseguire ulteriori operazioni di escape poiché in VXML un valore di variabile String viene indicato come virgolette singole all'interno delle normali virgolette doppie delle definizioni degli attributi:

7

Dato che si è nel contesto dell'HTML, è necessario utilizzare l'HTML per rappresentare quel carattere. E per HTML è necessario utilizzare un (esadecimale &#x27;) numeric character reference&#39;:

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

ma non ho capito cosa intendi per' context of html'? –

+0

@coding_idiot Dai un'occhiata ai diversi [token che un parser HTML può incontrare durante il processo di analisi] (http://www.w3.org/TR/html5/syntax.html#tokenization). Ogni stato ha un diverso insieme di regole di analisi che vengono attivate in base all'input. Non tutti gli stati permettono riferimenti di carattere. Ora, se si guarda il [valore dell'attributo (quotato singolo)] (http: //www.w3.org/TR/html5/syntax.html#attribute-value- \ (stato quotato a virgola mobile), è possibile vedi che a '& denota l'inizio di un riferimento di carattere. – Gumbo

5

rappresentarlo come entità di testo (ASCII 39):

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