判断银行卡号是否有效
2016-09-13 14:58
204 查看
+ (BOOL) isValidCreditNumber:(NSString*)value {
02.
BOOL result = NO;
03.
NSInteger length = [value length];
04.
if
(length >=
13
) {
05.
result = [WTCreditCard isValidNumber:value];
06.
if
(result)
07.
{
08.
NSInteger twoDigitBeginValue = [[value substringWithRange:NSMakeRange(
0
,
2
)] integerValue];
09.
//VISA
10.
if
([WTCreditCard isStartWith:value Str:@
"4"
]) {
11.
if
(
13
== length||
16
== length) {
12.
result = TRUE;
13.
}
else
{
14.
result = NO;
15.
}
16.
}
17.
//MasterCard
18.
else
if
(twoDigitBeginValue >=
51
&& twoDigitBeginValue <=
55
&& length ==
16
) {
19.
result = TRUE;
20.
}
21.
//American Express
22.
else
if
(([WTCreditCard isStartWith:value Str:@
"34"
]||[WTCreditCard isStartWith:value Str:@
"37"
]) && length ==
15
){
23.
result = TRUE;
24.
}
25.
//Discover
26.
else
if
([WTCreditCard isStartWith:value Str:@
"6011"
] && length ==
16
) {
27.
result = TRUE;
28.
}
else
{
29.
result = FALSE;
30.
}
31.
}
32.
if
(result)
33.
{
34.
NSInteger digitValue;
35.
NSInteger checkSum =
0
;
36.
NSInteger index =
0
;
37.
NSInteger leftIndex;
38.
//even length, odd index
39.
if
(
0
== length%
2
) {
40.
index =
0
;
41.
leftIndex =
1
;
42.
}
43.
//odd length, even index
44.
else
{
45.
index =
1
;
46.
leftIndex =
0
;
47.
}
48.
while
(index < length) {
49.
digitValue = [[value substringWithRange:NSMakeRange(index,
1
)] integerValue];
50.
digitValue = digitValue*
2
;
51.
if
(digitValue >=
10
)
52.
{
53.
checkSum += digitValue/
10
+ digitValue%
10
;
54.
}
55.
else
56.
{
57.
checkSum += digitValue;
58.
}
59.
digitValue = [[value substringWithRange:NSMakeRange(leftIndex,
1
)] integerValue];
60.
checkSum += digitValue;
61.
index +=
2
;
62.
leftIndex +=
2
;
63.
}
64.
result = (
0
== checkSum%
10
) ? TRUE:FALSE;
65.
}
66.
}
else
{
67.
result = NO;
68.
}
69.
return
result;
70.
}
相关文章推荐
- IOS判断是否有效银行卡号
- 判断用户输入的银行卡号是否正确--基于Luhn算法的格式校验
- 判断用户输入的银行卡号是否正确的方法(基于Luhn算法的格式校验)
- 字符串工具类(例如对字符串的判断长度大小,是否为验证码,手机号,银行卡号之类的)
- iOS 中使用正则表达式判断身份证格式及银行卡号格式是否正确(推荐)
- 判断银行卡号是否正确
- iOS 正则表达式判断身份证格式以及银行卡号格式是否正确
- JS判断是否为银行卡号
- iOS 中使用正则表达式判断身份证格式及银行卡号格式是否正确(推荐)
- php检测银行卡号是否有效,能够校验16位或19位银行卡卡号。
- js判断银行卡号
- 使用 if (对象名) {...} 来判断一个对象是否“有效”
- [转]js判断url是否有效
- iOS开发笔记-根据银行卡号判断银行名称
- 判断远程url是否有效的几种方法
- 判断银行卡号的归属
- js判断url是否有效的两种方法
- [置顶] PHP判断远程url是否有效的几种方法
- 用Java怎么判断链接是否有效
- Windows CE 下判断 URL 地址是否有效