fork download
  1. import re
  2. credit_cards = ['5000 2368 7954 3214','5000.2368.7954.3214','6011346728478930','5465625879615786', '5711424424442444', '5000-2368-7954-3214', '4444444444444444', '5331625879615786', '5770625879615786','5750625879615786', '575455879615786']
  3.  
  4. def World_BINS(credit_cards):
  5. valid_BINS = r"^5(?:465|331|000|[0-9]{2})(?=([\s.-]?))(\1\d{4}){3}$"
  6. do_not_repeat = r"^((\d)([\s.-]?)(?!(\3?\2){3})){16}$"
  7.  
  8. filters = [valid_BINS, do_not_repeat]
  9.  
  10. for num in credit_cards:
  11. if all(re.match(f, num) for f in filters):
  12. print(f"{num} is Valid")
  13. else:
  14. print (f"{num} is invalid")
  15.  
  16.  
  17. World_BINS(credit_cards)
Success #stdin #stdout 0.03s 9580KB
stdin
Standard input is empty
stdout
5000 2368 7954 3214 is Valid
5000.2368.7954.3214 is Valid
6011346728478930 is invalid
5465625879615786 is Valid
5711424424442444 is invalid
5000-2368-7954-3214 is Valid
4444444444444444 is invalid
5331625879615786 is Valid
5770625879615786 is invalid
5750625879615786 is invalid
575455879615786 is invalid