有沒有方法檢查字符串是否僅包含給定語言的字符? (例如日語,希伯來語,阿拉伯語)驗證字符串 - 僅限特定語言字符
我想知道是否有一種方法實現這種驗證在Javascript \ jquery和c#中?
編輯
我不願意檢查,如果字符串中包含特定語言詞典的有效字。我想驗證所有字符都屬於該語言。
有沒有方法檢查字符串是否僅包含給定語言的字符? (例如日語,希伯來語,阿拉伯語)驗證字符串 - 僅限特定語言字符
我想知道是否有一種方法實現這種驗證在Javascript \ jquery和c#中?
編輯
我不願意檢查,如果字符串中包含特定語言詞典的有效字。我想驗證所有字符都屬於該語言。
@CD,所以確信你可以做到這一點。
在C#中,只是:
string str = "this text has arabic characters";
bool hasArabicCharacters = str.Any(c => c >= 0xFB50 && c <= 0xFEFC);
也許使用帶有UNICODE字符集的正則表達式?
不,你不能檢查確切的語言。您只能檢查那些沒有其他語言的字符。例如cyriclics,hieroglyphs等 就像提示一樣,您可以使用google translate api來定義lanuage用戶輸入文本的方式。
是的,你可以定義阿拉伯語,只需檢查阿拉伯語是什麼區域的阿拉伯語。 – 2009-08-17 15:46:45
我不願意檢查字符串是否包含特定語言字典的有效單詞。我想驗證所有字符都屬於該語言。 – 2009-08-17 15:48:44
所以首先你確實需要定義一個支持的語言列表。然後檢查他們使用的unicode表的哪些區域。 – 2009-08-17 15:57:09
internal bool HasArabicCharacters(string text)
{
Regex regex = new Regex(
"[\u0600-\u06ff]|[\u0750-\u077f]|[\ufb50-\ufc3f]|[\ufe70-\ufefc]");
return regex.IsMatch(text);
}
這是阿拉伯文字,但我沒有測試它的其他語言
^[\u0621-\u064A\040]+$
你說的是語言或字符集?他們不一樣。 – 2009-08-17 15:41:31
有什麼區別? – 2009-08-17 15:42:52
許多語言使用相同的字符集。例如,幾乎所有的西歐。 OTOH,示例列表中的每種語言都使用與列表中的其他語言不同的字符集。所有的例子都可以通過字符集來區分。英語和匈牙利語OTOH不能。 – 2009-08-17 16:00:59