解析字符串集合并仅删除希伯来语

时间:2013-06-11 06:00:43

标签: c# string winforms validation hebrew

就是这种情况

通过:

 "אבגדהו"
 "אב'גדהו"
 "אב-גדהו"
 "אב"גד"
 "אבגדהו"
 "אב.גד"
 "אבגדהו"

失败:

"א*בAb"
"א/ב1c"

尝试下面的代码我会在第一次失败测试时得到starnge行为 所有以下假设通过失败也

所以问题是 使用c#winforms桌面应用程序,验证字符串

的正确方法是什么

仅包含אTOת 将允许包含字符.-' 如果string包含数字或任何其他语言chars = fail

中的任何位置
    public string OnlyHebPlusSomeSpclChars(string StrToVerify)
    {

        bool ISheb = StrToVerify.All(c => c >= 0x0580 && c <= 0x05ff);
        if (ISheb)
        {
            return StrToVerify;
        }
        else
        {
            return "";//Test String contain 1 or more invalid chars
        }

    }

更新

很抱歉忘了允许这些空间。 thar不是密码字段,而是具有空格的f.name + l.name集合

“אבגדהו”

1 个答案:

答案 0 :(得分:1)

没关系。解释为什么第二个值失败是因为它有一个撇号字符'。与后续字符串相同。他们有'-.''(2个单撇号)

要解决此问题,您只需在支票中添加允许的字符。

bool ISheb = StrToVerify.All(c => (c >= 0x0580 && c <= 0x05ff)
            || c == '.' //add this
            || c == '-' //add this
            || c == '\'' //add this
            || c == ' '); //add this