我喜欢实现textBox,其中用户只能以这样的方式插入文本:
dddddddddd, dddddddddd, dddddddddd, ...
其中d是数字。如果用户连续控制的行数少于10位,则验证失败并且他不能写入超过10位的一行,那么可接受的只能是逗号“,”。
感谢您的帮助
答案 0 :(得分:1)
Match m = Regex.Match(textBox.Text, @"^\d{10},$", RegexOptions.Multiline);
答案 1 :(得分:1)
我建议使用正则表达式
\A(?:\s*\d{10},)*\s*\d{10}\s*\Z
<强>解释强>
\A # start of the string
(?: # match the following zero or more times:
\s* # optional whitespace, including newlines
\d{10}, # 10 digits, followed by a comma
)* # end of repeated group
\s* # match optional whitespace
\d{10} # match 10 digits (this time no comma)
\s* # optional whitespace
\Z # end of string
在C#中,这看起来像
validInput = Regex.IsMatch(subjectString, @"\A(?:\s*\d{10},)*\s*\d{10}\s*\Z");
请注意,您需要使用逐字符串(@"..."
)或将正则表达式中的所有反斜杠加倍。