正则表达式用于信用卡验证

时间:2011-03-22 20:28:21

标签: regex

我需要验证一张信用卡(假人 - 我没有真正做任何交易)。条件是

  1. 必须介于10到16位之间。

  2. 以数字3或4

  3. 开头
  4. 只允许数字,我的意思是[0-9]。

  5. 我试过了,我的[3-4] [0-9] {10-16}。但它似乎没有产生结果。

    感谢您的期待

2 个答案:

答案 0 :(得分:12)

应该是:

^[34][0-9]{9,15}$
  • 开始和结束锚点很重要,或者正则表达式可能只匹配整个字符串中的一部分(例如,20个中的16位数字)
  • [34]其中一个角色。 [3-4]是一样的。
  • {9,15}是正确的语法。请注意,[34]是第一个数字,因此您需要减去一个。

一些例子:http://www.rubular.com/r/q61cPPYW7E

答案 1 :(得分:1)

您可能希望通过使用更积极的验证来确定信用卡号码是否不仅仅满足RegEx的格式。

您可以使用Luhn algorithm验证该号码,甚至可以使用进一步的验证来告诉您what company the credit card number belongs to