每次被问到这个问题时,答案都是使用负面展望,如:(?!x)
不幸的是,我必须在vb6中执行美国运通的检查,它不支持负面的外观或负面的后视镜。
除了34,37之外,是否可以使用最古老的正则表达式实现来匹配所有东西?
我希望这类事情能起作用:^[1,2,4-9][1-3,5-6,8-9][0-9]{13}$
当然,我已经能够将AmEx与这个表达式相匹配:^3[47][0-9]{13}$
,但我还没有找到一种方法来逆转验证规则。
下面是我的验证程序设置:
<asp:RegularExpressionValidator
ID="AmExValidator"
Display="None"
ControlToValidate="txtCreditCardNumber"
ValidationExpression="^[1,2,4-9][1-3,5-6,8-9][0-9]{13}$"
ErrorMessage="American Express cards are not accepted."
ValidationGroup="Payment"
runat="server">
</asp:RegularExpressionValidator>```
发布于 2022-01-10 21:51:32
您可以使用
^([0-24-9][0-9]|3[0-35689])[0-9]{13}$
见regex演示。详细信息
^
-字符串的开始([0-24-9][0-9]|3[0-35689])
- 00
to 29
,40
to 99
,或3
后面跟着4
和7
以外的数字。[0-9]{13}
-13位数$
-字符串的末端。https://stackoverflow.com/questions/70659238
复制相似问题