2011-10-07 6 views
7

Ho una domanda abbastanza semplice. Esiste un'entità html denominata nella maggior parte dei riferimenti per il simbolo del dollaro ed è ciò che ci si aspetterebbe che fosse; '& dollari;'.

Ma in altri riferimenti questo manca e indicare solo l'entità numerica disponibile (& # 36;).

Come ricordo che l'entità nominata non esisteva da molto tempo perché $ fa parte del set standard ASCII. E a causa di questa versione precedente/precedente di IE e altri browser non supportano questa entità.

Quindi, qual è l'accordo con questo attualmente? Sto cercando ciò che il supporto per l'entità denominata è e perché questo non era supportato in primo luogo ...

Ecco un riferimento a tutti i simboli di valuta dove stranamente solo il dollaro non ha un nome entità http://www.entitycode.com/#currency-content

Ecco un piccolo esempio di cosa sto parlando quando si utilizza un dollaro + int http://codepad.org/xCxWZWsu E sì, lo so che in questo semplice esempio ho potuto avere appena sfuggito il simbolo del dollaro con una barra, ma me quando credere Dico che renderlo un'entità quando salvo la stringa è la soluzione più sana del mio caso.

Indipendentemente dal mio esempio, sono ancora curioso di sapere quale sia il supporto per il dollaro &; l'entità è.

+0

Qual è esattamente la tua domanda? Cosa dovrebbe importare se un carattere di riferimento '& dollar;' esiste o no? – RoToRa

+0

@RoToRa è un po 'più semantico, avevo bisogno di usare un'entità perché stavo facendo regex sostituisce su stringhe con questi in esso, e dato che $ 1 fa riferimento alla possibile corrispondenza trovata nella regex, converte qualsiasi $ \ d a 0. Ma il supporto per le entità numeriche nei client è in genere inferiore rispetto alle entità con nome che ho trovato molto curioso. – sg3s

+0

Non vedo perché è necessario utilizzare un'entità a causa delle espressioni regolari. Potresti fornire un codice concreto che mostri il tuo problema? – RoToRa

risposta

4

Il official list of entities non elenca esso, quindi mi piacerebbe il file sotto “alcuni browser possono aver avuto il supporto per esso, non si basano su di esso, però.”

In generale, sono stati necessari per rappresentare le entità caratteri non ASCII quando il set di caratteri del documento era limitato da ASCII. Oggigiorno con UTF-8 il set di caratteri più frequente sul web penso che possiamo finalmente superare le entità con nome e utilizzare direttamente i caratteri.

0

L'unica soluzione ragionevole è utilizzare preg_quote() quando si utilizza l'input per le espressioni regolari. Altrimenti è necessario utilizzare html-enities per. \ + *? [^] $() {} =! <> | : - pure.

+0

So come sfuggire alle stringhe da utilizzare nelle espressioni regolari. Non era una mia domanda. – sg3s