我有一个文本框,我想验证用户只输入希伯来字符串。我怎么能这样做?
答案 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匹配。