我是否需要在html屬性值內部轉義引號?什麼字符被允許?我可以在HTML屬性值中添加什麼值?
這有效嗎?
<span title="This is a 'good' title.">Hi</span>
我是否需要在html屬性值內部轉義引號?什麼字符被允許?我可以在HTML屬性值中添加什麼值?
這有效嗎?
<span title="This is a 'good' title.">Hi</span>
如果你的屬性值引用(以雙引號"
開頭和結尾),則允許除雙引號和&符號之外的任何字符,其必須引用爲分別爲和&
(或等效數字實體參考,"
和&
)
您也可以在屬性值周圍使用單引號。如果你這樣做,你可以在屬性中使用文字雙引號:<span title='This is a "good" title.'>...</span>
。爲了在此屬性值內轉義單引號,您必須使用數字實體引用'
,因爲某些瀏覽器不支持命名實體'
(即not defined in HTML 4.01)。
此外,你還可以創建不帶引號的屬性,但是,許多進一步限制的字符集,你能夠在其內,禁止在屬性中使用的空間,=
,'
,"
,<
,>
,`
。
查看the HTML5 spec瞭解更多詳情。
要求轉義&符號的理由是什麼?它能代表什麼? – 2014-02-13 11:23:58
嗯,好吧,它是因爲&符號本身將被解析爲一個實體。 – 2014-02-13 11:39:17
&符號是屬性值中的有效字符。該規範禁止「不明確的&符號」,它是(&符號+字母數字字符+分號)的組合,它與任何指定的引用不匹配。 '' - 有效 '' - 無效 – Semra 2015-01-10 22:20:07
值可以是任何東西,但你應該逃脫引號("
,'
),標記分隔符(<
,>
)和符號(&
)。
這個看起來不正確(參見其他答案中的規格鏈接)。 – Christophe 2013-01-13 01:09:37
它似乎並不禁止<, >等等。該規範僅禁止使用&符號。 – arviman 2018-02-13 12:57:24
這是有效的。但是,如果你不得不把雙引號裏面,你將有"
這樣逃脫:
<span title="This is a "good" title.">Hi</span>
不,你不需要逃避雙引號內的單引號。
此頁面指定span標記的有效屬性:
http://www.w3.org/TR/html401/struct/global.html#edef-SPAN
本頁面指定允許在title屬性有效的字符:
是的,沒關係。問題是當你嘗試在屬性中放置雙引號時。像這樣:
<span title="This is a "bad" title.">Hi</span>
您可以通過使用HTML實體,像這樣解決這個問題:
<span title="This is a "good" title">Hi</span>
下面是使用基於布賴恩·坎貝爾的答案正則表達式,爲一個不帶引號的最壞的情況下驗證功能屬性。
validator: function (val) {
if (!val || val.search(/['"=<>`]+|(&\s)+/) === -1) return true;
return 'Disallowed characters in HTML attributes: \' " = < > ` &.';
},
檢查出最新的HTML5規範的稱號屬性:http://dev.w3.org/html5/spec/Overview.html#the-title-attribute相信title屬性使用CDATA類型這是在這裏定義的:http://www.w3.org/TR/html401/types。html#type-cdata – 2011-03-16 02:01:51
只詢問&符號:http://stackoverflow.com/questions/3705591/do-i-encode-ampersands-in-a-href(來到之前不幸,所以沒有笨蛋......) – 2014-02-13 11:37:44