2011-10-07 47 views
7

的命名的html實體的交易是什麼我有一個相當簡單的問題。在美元符號的'大多數'引用中有一個命名的html實體,這是你所期望的; '&美元;'。

但在其他參考文獻中,這是缺少,並告訴你只有數字實體可用($)。

我記得命名實體很久沒有存在,因爲$是標準ascii集的一部分。而由於這個早期/舊版本的IE和其他瀏覽器不支持這個實體。

那麼目前的交易是什麼?我正在尋找對命名實體的支持是什麼以及爲什麼這不被支持的第一個地方...

這裏是所有的貨幣符號的引用,奇怪的是隻有美元沒有命名實體http://www.entitycode.com/#currency-content

下面是我講的,當你使用一元+ INT http://codepad.org/xCxWZWsu 的一個小例子是的,我知道,在這個簡單的例子,我可以只逃脫斜線美元的跡象,但相信我,當我說在保存字符串時將它變成一個實體是我的最理智的解決方案。

不管我的例子我仍然好奇支持&美元;實體是。

+0

你的問題到底是什麼?如果字符引用'$'存在或不存在,該怎麼辦? – RoToRa

+0

@RoToRa它更有語義性,我需要使用一個實體,因爲我在做正則表達式替換其中的字符串,並且由於$ 1引用了在正則表達式中找到的可能匹配,它會將任何$ \ d轉換爲0。對客戶端數字實體的支持通常低於我發現這非常好奇的命名實體。 – sg3s

+0

我不明白爲什麼會因爲正則表達式而需要使用實體。你能給出一些具體的代碼來顯示你的問題嗎? – RoToRa

回答

4

official list of entities沒有列出它,所以我將其提交「某些瀏覽器可能不得不對它的支持,不依賴於它,雖然。」

一般情況下,需要有實體的代表當文檔字符集受ASCII限制時,爲非ASCII字符。現在UTF-8是網絡上最常見的字符集,我認爲我們終於可以移動過去的命名實體並直接使用這些字符。

0

唯一的解決方案是在使用正則表達式的輸入時使用preg_quote()。否則,你需要使用html-enities。 \ + *? [^] $(){} =! <> | : - 也。

+0

我知道如何在正則表達式中使用字符串轉義。這不是我的問題。 – sg3s