2009-11-05 20 views
9

İkili veriyi JavaScript'te algılamak mümkün mü?JavaScript'te yazdırılamayan karakterler algıla

İkili verileri algılayabilmeyi ve daha kolay okunabilirlik/hata ayıklama için onaltılık metne dönüştürmeyi tercih ederim. ikili veri düzenli karakterler ve olmayan basılabilir karakterler içerebilir, çünkü ikili veri tespit doğru soru olmadığını fark ettik daha araştırmadan sonra


.

Outis'in soru ve yanıtı (/ [\ x00- \ x1F] /) gerçekten ikili karakterleri tespit etme girişiminde yapabileceğimiz en iyi şeydir.

Not: Aslında çalışmak için kontrol için satır besleme ve muhtemelen diğer karakter dizilerinizden diğer karakterleri kaldırmanız gerekir. Mi demek "ikili" "olmayan basılabilir karakterler içeriyor" tarafından

+0

nerede olduğunu tespit etmek için? –

cevap

17

, deneyin:

/[\x00-\x1F]/.test(data) 

boşluk kabul edilirse olmayan ikili veri, deneyin:

/[\x00-\x08\x0E-\x1F]/.test(data) 

Biliyorsanız dize ASCII veya ikili, kullanım biri geçerlidir:

/[\x00-\x1F\x80-\xFF]/.test(data) 

ya:

/[\x00-\x08\x0E-\x1F\x80-\xFF]/.test(data) 
+0

Sanırım "regexp.test (data)" demek istiyorsunuz. Ayrıca, sekme karakteri yazdırılabilir. – pimvdb

+0

"yazdırılabilir olmayan" [POSIX Locale standardı, §7.3.1] (http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap07.html#tag_07_03_01) anlamında (ki bunun temelini oluşturur) ['isprint'] (http://pubs.opengroup.org/onlinepubs/009695399/functions/isprint.html)] 'in basılmış karakterleri olmadıklarından, metin işlemcisinin bazı özel eylemler almasını gerektirdiğinden. Haklısınız ki OP, boşlukları ikili olmayan veriler olarak değerlendirmek isteyebilir. Ayrıca, "test" için argüman ve nesne gerçekten değiştirildi. – outis

+1

Testi geçmek için Tab'a ihtiyacım vardı, bu yüzden kullanıyorum:/[\ x00- \ x09 \ x0E- \ x1F]/' – Nathan