0

就是这样

通过:

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

失败:

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

尝试下面的代码,我得到了一种奇怪的行为,一旦第一次失败测试所有以下假设通过失败也

所以问题是使用 c# winforms 桌面应用程序,验证字符串的正确方法是什么

将仅包含 א TO ת 如果字符串中的任何位置包含数字或任何其他语言字符 = 失败,
则将允许包含字符.-'

    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 集合,也有空格

“אבגדהו”

4

1 回答 1

1

没事儿。要解释为什么第二个值失败是因为它有一个撇号字符'。与随后的字符串相同。它们有', -, ., ''(2个单撇号)

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

bool ISheb = StrToVerify.All(c => (c >= 0x0580 && c <= 0x05ff)
            || c == '.' //add this
            || c == '-' //add this
            || c == '\'' //add this
            || c == ' '); //add this
于 2013-06-11T06:13:58.193 回答