我应该使用什么 RegularExpressionValidator.ValidationExpression 来仅允许 ICQ UIN 之类的输入?
xxx-xxx-xxx and xxx-xxx-xx and xx-xxx-xxx and xxxxxxxxx so on..
即有破折号作为分隔符和没有。
请您参考如下方法:
您可以使用以下简单表达式。
^([0-9]-?){7,8}[0-9]$
缺点是,它允许像 1-2-3-4-5-6-7-8 这样的东西。如果你想更多地限制布局,你可以使用更复杂的表达式。
^(?=([0-9]-?){8,9})([0-9]{2,3}-?)*(?<!-)$
此表达式断言该字符串恰好包含八个或九个数字和一些破折号,使用正向预测断言 (?=([0-9]-?){8}) 。然后它匹配由破折号分隔的两个或三个数字组,最后使用断言 (?<!-) 背后的否定外观断言字符串不以破折号结尾。
这仍然允许一些不规则的模式,比如 12-34567-89 。如果您也想消除它们,则必须列出所有允许的模式。但我建议不要这样做,但允许尽可能多的灵 active - 我允许每个字符串包含八个或九个数字和任意数量的破折号 - 甚至 --123---4-5-67--8 然后以预定义格式重新格式化用户输入。
^(-*[0-9]-*){8,9}$
