2014-02-12 125 views
3

我有這樣一個字符串:「辛chàotấtcảmọingười」。字符串中有一些Unicode字符。我想要的只是編寫一個函數(在JS中)來檢查是否至少存在1個Unicode字符。如何知道Javascript中的字符串中有UTF8字符?

+3

的JavaScript字符串不 「包含UTF-8」 字不同的方法。它們包含Unicode代碼點(在BMP中編碼爲Unicode的一個代碼點/字符 - 無論UTF-16/UCS-2內部代碼是完全不同的蠕蟲)。那麼,現在什麼是「UTF-8字符」?你的意思是Unicode字符不在ASCII平面中嗎? – user2864740

回答

2

一個字符串是一系列字符,每個字符都有一個字符代碼。 ASCII定義了從0到127的字符,因此如果字符串中的字符的代碼大於該字符,則它是一個Unicode字符。這個函數檢查這個。請參閱String#charCodeAt

function hasUnicode (str) { 
    for (var i = 0; i < str.length; i++) { 
     if (str.charCodeAt(i) > 127) return true; 
    } 
    return false; 
} 

然後使用它像,hasUnicode("Xin chào tất cả mọi người")

+0

這就是我要找的。非常感謝你!我會盡快將您的答案標記爲已接受。 –

0

下面是使用正則表達式

function hasUnicode(s) { 
    return /[^\u0000-\u007f]/.test(s); 
} 
+1

性能結果將會不同..並且你的代碼沒有檢測到「à」..你的正則表達式應該是'/ [^ \ u0000- \ u007f] /':) – StefansArya

相關問題