2011-03-16 19 views
25

Bir html öznitelik değerinin içindeki tırnaklardan kaçmak zorunda mıyım? Hangi karakterlere izin verilir?Bir HTML niteliği değerine hangi değerleri koyabilirim?

Bu geçerli midir?

<span title="This is a 'good' title.">Hi</span> 
+0

Kontrol en son HTML5 spec title özelliği: http://dev.w3.org/html5/spec/Overview.html#the-title-attribute inanıyorum title özelliği CDATA türünü kullanır Burada tanımlanan: http://www.w3.org/TR/html401/types.html # type-cdata –

+0

Sadece ve hakkında sorar: http://stackoverflow.com/questions/3705591/do-i-encode-ampersands-in-a-href (maalesef önce geldi, bu yüzden yok ...) –

cevap

37

sizin Öznitelik değeri alıntı yapıldığı takdirde (

Bu sayfa bir karış etiketinin geçerli özelliklerini belirtir çift ​​tırnak " ile başlar ve biter, sonra çift tırnak ve işareti dışında herhangi bir karakter izin verilir,olarak belirtilmesi gerekenve &amp; sırasıyla (veya eşdeğeri sayısal öğe başvuruları &#34; ve &#38;)

Ayrıca, özellik değeri tek tırnak kullanabilirsiniz. Bunu yaparsanız, öznitelikte şu çift tırnak işaretleri kullanabilirsiniz: <span title='This is a "good" title.'>...</span>. Bu tür bir öznitelik değerindeki tek tırnaklardan kurtulmak için, bazı tarayıcılar, &apos; (not defined in HTML 4.01 olan) adlı varlık öğesini desteklemediğinden, sayısal öğe referansını &#39; kullanmanız gerekir.

Ayrıca, aynı zamanda hiçbir tırnak özellikleri oluşturabilirsiniz, ama bu özelliğinde boşluklar, =, ', ", <, > kullanımını ` izin vermeme, çok daha bunun içinde var karakter setini kısıtlar .

Daha fazla ayrıntı için the HTML5 spec adresine bakın.

+1

"Ve" işaretlerinden kurtulmayı gerektiren mantık nedir? Ne için dayanabilir? –

+5

Ah, tamam, onun nedeni ve işareti, aksi halde bir varlık olarak ayrıştırılacağı için. –

+4

Ve işareti, bir özellik değerinde geçerli bir karakterdir. Spec, adlandırılmış referanslardan herhangi biriyle eşleşmediği (ampersand + alfanümerik karakterler + noktalı virgül) yanması olan "belirsiz ampersan" ı yasaklar. '' - geçerlidir '' - geçersiz – Semra

3

değer herhangi bir şey olabilir, ancak tırnak (&quot;, &apos;), etiket ayraçları (&lt;, &gt;) ve işaretleri (&amp;) kaçmak gerekir.

+0

Bu doğru görünmüyor (diğer cevaplardaki özelliklere bağlantı). – Christophe

+0

, <, >, vb. Izin vermez. Bu özellik yalnızca işaretleri ve işaretleri engeller. – arviman

4

Bu geçerlidir. İçinde çift tırnak koymak zorunda Ancak, böyle &quot; ile kaçmaya olurdu:

<span title="This is a &quot;good&quot; title.">Hi</span> 
1

Evet, sorun değil. Bir öznitelik içinde çifte bir Alıntı koymaya çalıştığınızda sorun olurdu. Böyle:

<span title="This is a "bad" title.">Hi</span> 
Öyle gibi HTML öğelerini kullanarak bu sorunun üstesinden gelebilirsiniz

: Burada

<span title="This is a &quot;good&quot; title">Hi</span> 
0

bir tırnaksız en kötü durum için Brian Campbell yanıta göre düzenli ifadeyi kullanan bir doğrulama fonksiyonudur bağlıyor.

validator: function (val) { 
    if (!val || val.search(/['"=<>`]+|(&\s)+/) === -1) return true; 
    return 'Disallowed characters in HTML attributes: \' " = < > ` &.'; 
}, 
İlgili konular