如何在C#中验证希伯来字符串输入?

时间:2010-07-29 19:52:17

标签: c#

我有一个文本框,我想验证用户只输入希伯来字符串。我怎么能这样做?

5 个答案:

答案 0 :(得分:5)

显而易见的方法是使用TextBox.Text.ToCharArray()检查代码点。 Hewbrew字形是代码点0x0580到0x05ff,补充条件为0xfb1d到0xfb4f。加上阿拉伯数字。

不是母语人士,但我会假设在拼写商标名称,外来词和首字母缩略词时会出现拉丁字符。请注意this page中使用“RSS”。在任何验证文本的尝试中都存在很大的漏洞。

答案 1 :(得分:1)

一种方法是抓住ASP.NET AJAX Control Toolkit @ http://www.asp.net/ajax/ajaxcontroltoolkit/samples/

使用FilteredTextBox控件(基本上是文本框的扩展名)。

请注意,这只会阻止他们提交表格,如果它有非希伯来字符串。它不会阻止他们在文本字段中输入它们。

但我想这会产生一个不同的问题。您必须定义允许的其他字符,标点符号,数字等。

你想解决什么问题?也许我们或许可以拿出别的东西。

答案 2 :(得分:1)

避免代码中的unicode字符

private const char FirstHebChar = (char)1488; //א
private const char LastHebChar = (char)1514; //ת
private static bool IsHebrew(this char c)
{
     return c >= FirstHebChar && c <= LastHebChar;
}

请参阅http://blogs.microsoft.co.il/shimmy/2012/02/03/determine-if-char-is-hebrew-2/

答案 3 :(得分:0)

使用正则表达式确保文本位于特定范围内。您可能希望添加空格字符,以及嵌入的任何R-to-L和L-R字符。

答案 4 :(得分:0)

如果您使用ASP.NET Web应用程序执行此操作,则可以使用带有Unicode转义字符的the RegularExpressionValidator control来为有效字符串创建RegEx匹配。