新足迹

 找回密码
 注册

精华好帖回顾

· 漫漫取名路---宝宝出生五天纪念 (2006-3-17) chris2002 · 关于施肥 (2010-11-27) aquaponics
· 参赛-好玩又好吃的功夫菜:拔丝土豆 (2007-2-19) Beily · 【独乐园】 (2013-4-15) 小兔白又白
Advertisement
Advertisement
查看: 1560|回复: 11

信用卡网上付账,其实不用选card type-付超强的cc number validation RE [复制链接]

特殊贡献奖章

发表于 2010-11-10 13:55 |显示全部楼层
此文章由 kr2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kr2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
信用卡的卡号已经说明了卡的类别,很多网站都需要你选择卡的类型,其实是多此一举
今天刚好用到这个,拿来分享一下

    *Visa: ^4[0-9]{12}(?:[0-9]{3})?$ All Visa card numbers start with a 4. New cards have 16 digits. Old cards have 13.
    * MasterCard: ^5[1-5][0-9]{14}$ All MasterCard numbers start with the numbers 51 through 55. All have 16 digits.
    * American Express: ^3[47][0-9]{13}$ American Express card numbers start with 34 or 37 and have 15 digits.
    * Diners Club: ^3(?:0[0-5]|[68][0-9])[0-9]{11}$ Diners Club card numbers begin with 300 through 305, 36 or 38. All have 14 digits. There are Diners Club cards that begin with 5 and have 16 digits. These are a joint venture between Diners Club and MasterCard, and should be processed like a MasterCard.
    * Discover: ^6(?:011|5[0-9]{2})[0-9]{12}$ Discover card numbers begin with 6011 or 65. All have 16 digits.
    * JCB: ^(?:2131|1800|35\d{3})\d{11}$ JCB cards beginning with 2131 or 1800 have 15 digits. JCB cards beginning with 35 have 16 digits.

一行搞定
^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$

评分

参与人数 2积分 +8 收起 理由
乱码 + 3 你太有才了
bulaohu + 5 谢谢奉献

查看全部评分

Advertisement
Advertisement

2010年度奖章获得者

发表于 2010-11-10 14:03 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
对,号码决定了type

其实你自己根本都不用validate.

自己递交给第三方就好了, 人家有最完善的验证系统。 有错,人家会返回你错误的。

发表于 2010-11-10 14:14 |显示全部楼层
此文章由 bulaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bulaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 kr2000 于 2010-11-10 14:55 发表
信用卡的卡号已经说明了卡的类别,很多网站都需要你选择卡的类型,其实是多此一举
今天刚好用到这个,拿来分享一下

    *Visa: ^4[0-9]{12}(?:[0-9]{3})?$ All Visa card numbers start with a 4. New cards have 16 digi ...


Google Checkout一直就是这样的,不用选那个stupid drop down list

特殊贡献奖章

发表于 2010-11-10 14:19 |显示全部楼层
此文章由 kr2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kr2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
一般只validate长度和是不是数字,今天有个任务是求card type,查到这个就发出来
其实也不用regex,有前4个数字就够了

2010年度奖章获得者

发表于 2010-11-10 14:29 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
搞IT的人品一定要好。

手里进出的信用卡,以及其他敏感数据千万。。。。

诱惑相当的大啊。。。 哈哈

2010年度奖章获得者

发表于 2010-11-10 14:30 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
要是收集一下买给黑市。。。那早就退休了 :)
Advertisement
Advertisement

发表于 2010-11-10 15:16 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2010-11-10 15:30 发表
要是收集一下买给黑市。。。那早就退休了 :)


要是真有这个心,我早退休了,或者进监狱了。

2010年度奖章获得者

发表于 2010-11-10 15:17 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 乱码 于 2010-11-10 16:16 发表


要是真有这个心,我早退休了,或者进监狱了。


不管是哪一种,都吃喝不愁了

评分

参与人数 1积分 +2 收起 理由
JuJu + 2 你太有才了

查看全部评分

足迹 Reader is phenomenal. If you never used, you never lived 火速下载

发表于 2010-11-10 15:19 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
嗯,在3rd party作credit card validation的时候,人家从来不需要提供card type

发表于 2010-11-12 14:45 |显示全部楼层
此文章由 o2h2o 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 o2h2o 所有!转贴必须注明作者、出处和本声明,并保持内容完整

我就怀疑 有这玩意
多谢

发表于 2010-11-12 14:57 |显示全部楼层
此文章由 kawara 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kawara 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2010-11-10 15:03 发表
对,号码决定了type

其实你自己根本都不用validate.

自己递交给第三方就好了, 人家有最完善的验证系统。 有错,人家会返回你错误的。

这样设计系统可能会被fire掉的。

加一个简单的validation的话,

如果用户输入有明显的错误,可以在几十毫秒之内给他错误信息,而不是让他等几秒。UX会好很多,服务器负担也会小一些。

当然,不明显的错误还是要交给三方去校验。

这个在computer science里叫做poor man's algorithm。
Advertisement
Advertisement

特殊贡献奖章

发表于 2010-11-12 15:01 |显示全部楼层
此文章由 kr2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kr2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 kawara 于 2010-11-12 15:57 发表

这样设计系统可能会被fire掉的。

加一个简单的validation的话,

如果用户输入有明显的错误,可以在几十毫秒之内给他错误信息,而不是让他等几秒。UX会好很多,服务器负担也会小一些。

当然,不明显的错误还是要交给三方去 ...


是啊,有时候用户可能要填很多信息,结果发送过去后被弹回来,已经填过的信息又要重新填。用户可能会发飙

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部