我需要一个正则表达式Isracard (以色列信用卡)。
将非常感谢帮助,或者可能是一些如何制作它的信息。
Isracard 8-9位数字格式。
例如。卡片图片- http://images.delcampe.com/img_large/auction/000/157/341/572_001.jpg
发布于 2016-07-06 19:37:38
我发现了对IsraCard的验证:
<script>
var cardValid=function(cardNo){
var sum = 0, iNum;
for( var i in cardNo+='' ){
iNum = parseInt(cardNo[i]);
sum += i%2?iNum:iNum>4?iNum*2%10+1:iNum*2;
}
return !(sum%10);
};
</script>
Asp vb script IsraCard Credit Card number Validation (8 or 9 digits)
<%
Function IsraCardCheck(strNumber)
comp1 = "987654321"
comp2 = strNumber
srez = 0
if len(comp2) < 9 then comp2 = "0" & comp2
for i = 1 to 9
a = mid(comp1, i, 1)
b = mid(comp2, i, 1)
c = a * b
srez = srez + c
next
if srez mod 11 = 0 then
IsraCheck = true
else
IsraCheck = false
end if
End Function
%>我只是从那里复制了代码,有关更多信息和细节,您可能需要检查链接本身:Anatomy of credit card number formats
发布于 2016-07-06 19:37:46
根据我所看到的here (没有任何关于以色列信用卡号开头的进一步指导),这应该是可行的
(3640|4580)-?([0-9]{4}-?){3}发布于 2016-07-06 20:57:57
一个简单的正则表达式来检查它是一个8位数字还是9位数字:
^[0-9]{8,9}$或者是否允许在数字之间使用空格或破折号。
^[0-9](?:[ -]?[0-9]){7,8}$例如,匹配:
1234-5678-9
1234 5678
1 2 3 4 5 6 7 8 9
1-2-3-4-5-6-7-8
12-34 56-78 9但纯正则表达式不能像f.e.那样进行计算。模数检查。
因此,需要额外的代码来提供更准确的验证。
Javascript示例代码片段:
function checkIsracard(creditcardNo){
if(! /^[0-9](?:[ -]?[0-9]){7,8}$/.test(creditcardNo.toString())) return false;
let total = 0;
let cardDigits = creditcardNo.toString().match(/[0-9]/g);
cardDigits.forEach(function(digit, indx){
total += parseInt(digit,10)*(cardDigits.length - indx);
});
return (total%11 === 0);
}
console.log('1234-5678-9:\t'+checkIsracard('1234-5678-9'));
console.log('1234 5679:\t'+checkIsracard('1234 5679'));
console.log('123456789:\t'+checkIsracard(123456789));
console.log('12345679:\t'+checkIsracard(12345679));
console.log('123456781:\t'+checkIsracard('123456781')); // modulus check fail
console.log('12345671:\t'+checkIsracard('12345671')); // modulus check fail
console.log('1234567:\t'+checkIsracard('1234567')); // not enough digits
console.log('1234567890:\t'+checkIsracard('1234567890')); // too many digits
但如果问题是关于16 digit visa credit card numbers
对于这些,使用了更广泛使用的luhn-algorithm。
所以这个算法会更复杂一些。
https://stackoverflow.com/questions/38222909
复制相似问题