Skip to main content
 首页 » 编程设计

c#之ICQ UIN 的正则表达式

2024年02月24日33arxive

我应该使用什么 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}$