验证字符串 - 仅限特定语言字符
有没有方法检查字符串是否仅包含给定语言的字符? (例如日语,希伯来语,阿拉伯语)验证字符串 - 仅限特定语言字符
我想知道是否有一种方法实现这种验证在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