我正在学习如何在字符串上创建限制为30个字符的regex查询(主要用于名字和姓氏)
我使用的是asp.net C#,但我似乎发现它与我正在编写的代码不正确
[WebMethod]
public bool stringOnlyAndLimit(String strToCheck)
{
Regex stringonly = new Regex("[^a-zA-Z]{1,30}");
return !stringonly.IsMatch(strToCheck);
}提前感谢
发布于 2013-09-10 17:27:22
如果您想学习RegEx,那么忽略这个答案,否则
A Non选项。您不需要Regex做类似的事情,您可以:
public bool stringOnlyAndLimit(String strToCheck)
{
return strToCheck.Length < 31 && strToCheck.All(r => char.IsLetter(r));
//return strToCheck.Length < 31 && !strToCheck.Any(r => char.IsDigit(r));
}与RegEX
public static bool stringOnlyAndLimit(String strToCheck)
{
Regex stringonly = new Regex("^[a-zA-Z ]{1,30}$");
return stringonly.IsMatch(strToCheck);
}发布于 2013-09-10 17:27:11
你可以这样做:-
^[a-zA-Z ]{1,30}$发布于 2013-09-10 17:29:07
您的正则表达式[^a-zA-Z]{1,30}当前告诉我任何不是字母A&A的东西,因为括号中有胡萝卜^。删除它,它将对没有空白的单个字符串起作用。
如果您想要使用一个RegEx (包括空格字符)检查名字和姓氏,并且不超过30个字符,则应该如下所示:
^[a-zA-Z\s]{1,30}$
https://stackoverflow.com/questions/18725252
复制相似问题