我正在学习在字符串上创建限制为30个字符的正则表达式查询(主要用于名字和姓氏)
我使用的是asp.net C# 但我似乎没有用我编写的代码
来发现它是正确的[WebMethod]
public bool stringOnlyAndLimit(String strToCheck)
{
Regex stringonly = new Regex("[^a-zA-Z]{1,30}");
return !stringonly.IsMatch(strToCheck);
}
提前致谢
答案 0 :(得分:2)
如果您想学习RegEx,请忽略此答案,否则
非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);
}
答案 1 :(得分:1)
您可以尝试这样的事情: -
^[a-zA-Z ]{1,30}$
答案 2 :(得分:1)
你的正则表达式[^a-zA-Z]{1,30}
目前说给我任何不是字母a-z&amp; A-Z因为括号内的胡萝卜^
。删除它,它将适用于没有空格的单个字符串。
如果您想使用一个包含空格字符的RegEx检查名字和姓氏,并且不超过30个字符,则应该是这样的:
^[a-zA-Z\s]{1,30}$
答案 3 :(得分:0)
不是特别针对C#,^是括号内的 NOT 符号。因此[^ abc]将匹配除 a,b或c。
之外的任何字符所以你的正则表达式应该是[a-zA-Z] {1,30}
答案 4 :(得分:0)
试试这个正则表达式
^[A-Za-z]{0,30}$