就是这种情况
通过:
"אבגדהו"
"אב'גדהו"
"אב-גדהו"
"אב"גד"
"אבגדהו"
"אב.גד"
"אבגדהו"
失败:
"א*ב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集合“אבגדהו”
答案 0 :(得分:1)
没关系。解释为什么第二个值失败是因为它有一个撇号字符'
。与后续字符串相同。他们有'
,-
,.
,''
(2个单撇号)
要解决此问题,您只需在支票中添加允许的字符。
bool ISheb = StrToVerify.All(c => (c >= 0x0580 && c <= 0x05ff)
|| c == '.' //add this
|| c == '-' //add this
|| c == '\'' //add this
|| c == ' '); //add this