2011-10-07 11 views
7

Mam dość proste pytanie. Istnieje nazwana encja html w "większości" odniesień do znaku dolara, i to jest to, czego oczekiwałbyś; "& dolarów;".

Ale w innych odnośnikach tego brakuje i informują, że dostępna jest tylko jednostka numeryczna (& # 36;).

Jak pamiętam nazwa obiektu nie istniała przez długi czas, ponieważ $ jest częścią standardowego zestawu ascii. I ze względu na to wcześniejsze/starsze wersje IE i innych przeglądarek nie obsługują tego encji.

Więc jaka jest umowa z tym obecnie? Szukam tego, czym jest wsparcie dla nazwanego podmiotu i dlaczego to nie było wspierane w pierwszej kolejności ...

Tutaj jest odniesienie do wszystkich symboli walut, gdzie o dziwo tylko dolar nie ma nazwy podmiot http://www.entitycode.com/#currency-content

Oto mały przykład tego, co mówię, kiedy używasz dolara + int http://codepad.org/xCxWZWsu I tak wiem, że w tym prostym przykładzie mogę mieć tylko uciekł znak dolara z kreską, ale uwierz mi, kiedy Twierdzę, że uczynienie go bytem, ​​gdy zapisuję ciąg, jest najbardziej rozsądnym rozwiązaniem w moim przypadku.

Niezależnie od mojego przykładu wciąż jestem ciekawy, co obsługuje dolara &; podmiot to.

+0

Jakie jest dokładnie twoje pytanie? Co powinno mieć znaczenie, jeśli odwołanie do znaku '& dollar;' istnieje czy nie? – RoToRa

+0

@RoToRa jest trochę bardziej semantyczna, musiałem użyć encji, ponieważ robiłem regex zamienia na ciągi z tymi zawartymi w nim, a ponieważ $ 1 odwoływał się do możliwego dopasowania znalezionego w regex, to konwertowałoby każdy $ \ d na 0. Ale obsługa podmiotów numerycznych w klientach jest zwykle niższa niż nazwanych podmiotów. Znalazłem to bardzo ciekawe. – sg3s

+0

Nie widzę powodu, dla którego trzeba by użyć jednostki z powodu wyrażeń regularnych. Czy możesz podać konkretny kod pokazujący twój problem? – RoToRa

Odpowiedz

4

official list of entities nie wymienia go, tak by złożyć je na „niektóre przeglądarki mogą mieć poparcie dla niego, nie należy liczyć na to, że.”

Generalnie były potrzebne do reprezentowania podmiotów znaki spoza ASCII, gdy zestaw znaków dokumentu był ograniczony przez ASCII. Obecnie z UTF-8 najczęściej występującym zestawem znaków w sieci, myślę, że możemy w końcu przejść obok nazwanych encji i po prostu użyć znaków bezpośrednio.

0

Jedynym rozsądnym rozwiązaniem jest użycie funkcji preg_quote() podczas wprowadzania danych dla wyrażeń regularnych. W przeciwnym razie musisz użyć html-enities dla. \ + *? [^] $() {} =! <> | : - także.

+0

Wiem, jak uciec ciągi do wykorzystania w wyrażeniach regularnych. To nie było moje pytanie. – sg3s