"UTF-8 karakterleri" nin ne anlama geldiğini yanlış anlıyorsunuz. UTF-8, kaydedilmiş insanlık tarihinde var olan her karakterin ve glifin hemen hemen tamamını temsil edebilen bir Unicode kodlamasıdır, böylece "geçersiz" UTF-8 karakterleri yoktur. RTF, temel kodlama sisteminden bağımsız olarak çalışan bir biçimlendirme sistemidir; RTF'yi ASCII, UTF-8, UTF-16 ve diğerleri ile kullanabilirsiniz. HTML'deki metin kutuları yalnızca düz metne saygı duyar, böylece herhangi bir RTF biçimlendirmesi otomatik olarak silinir (sizin kabul etmediğimi düşündüğüm bir "zengin düzenleme" bileşeni kullanmıyorsanız).
Ancak, boşluk karakterleri (sekmeler gibi: \t
) Unicode (ve böylece UTF-8) olarak gösterilenleri tanımlayabilirsiniz. Bu karakterleri içeren bir dize hala "geçerli UTF-8", iş gereksinimleriniz söz konusu olduğunda geçersiz.
Sadece sıyırma aşımı öneririz istenmeyen karakterleri (buradan: Match non printable/non ascii characters and remove from text) görünmeyen karakterler ile eşleşen bir düzenli ifade kullanarak [^\x20-\x7E]
maçları codepoint aralığında 0x20
herhangi bir karakter DEĞİL
textBoxContent = textBoxContent.replace(/[^\x20-\x7E]+/g, '');
ifade (32 , ' '
normal boşluk karakteri 0x7E
(127, '~'
karakterleri), diğerleri silinecektir.
Unicode'un ilk 127 codepoints ASCII aynıdır ve burada görülebilir: http://www.asciitable.com/
size yardımcı olabilir http://stackoverflow.com/questions/20639052/check -if-the-bayt-dizisi-geçerli-utf-8-dizisi-in-javascript –
[Javascript'te kullanıcının UTF-8 adını doğrulama] 'ye benzer (http://stackoverflow.com/questions/6381752/ validating-users-utf-8-isim-in-javascript) – Abhijit