如何将单个大写'A'加上8位长数与正则表达式相匹配?

时间:2015-09-14 17:28:54

标签: regex asp.net-mvc-4

我需要用户使用单个字母'A'加上8位数而不是更多。例如。 A00000000

以下是我的代码,但是我希望将位数限制为8.我使用的是MVC 4.

[RegularExpression("^[A][0-9]{8}$", ErrorMessage="Required format: A00000000")]

虽然它确实验证了用户可以永远打字。所以字符数没有限制。一旦它达到最多8位数就停止用户输入将是很好的。

感谢您的阅读。

3 个答案:

答案 0 :(得分:1)

单独使用正则表达式无法限制字符数,但您可以使用maxlength属性指定<input>元素中允许的最大字符数:

<input type="text" name="myInput" maxlength="9">

答案 1 :(得分:0)

除非您自己实现,否则正则表达式匹配只能对您拥有的字符串进行操作。在用户输入之前你就不会拥有它。

因此,如果你想阻止他打字,那么在你进入正则表达式之前,你将不得不

答案 2 :(得分:0)

如果您试图阻止某人在网页上输入文字框等内容,那么您必须加入按键事件(keyup或keydown)。然后一旦验证失败,返回&#34; false&#34;来自keypress事件处理程序,它将阻止字符进入文本框,或者您可能需要对传入的事件对象使用preventDefault(例如e.preventDefault())。如果您正在使用jQuery,请查看此网页:https://api.jquery.com/keypress/,了解如何设置事件处理程序。