2014-03-04 3 views
-1

Я новичок в регулярных выражениях и пытаюсь написать программу, чтобы узнать, вводит ли пользователь номер кредитной карты, который находится в допустимом диапазоне (в диапазоне от 13 до 16 и всех цифр). Ниже приведен код Java, который я написал, и мое регулярное выражение не заботится о моей потребности.Regex для проверки номеров кредитных карт

//Credit card number 1234567891234567 matched against regex 
boolean b = Pattern.matches("4\ d{ 12} (\ d{ 3})?", "1234567891234567"); 
if(b==true) 
{ 
     System.out.println("credit card is valid"); 
} 
else 
{ 
     System.out.println("credit card is not valid"); 
} 
+2

Что именно требуется? – Steve

+2

Все пробелы в вашем шаблоне регулярных выражений определенно являются проблемой. – MElliott

+0

Не забывайте контрольную цифру. Просто проверка регулярным выражением на длину не делает его действительным номером cc. – Zavior

ответ

3

Это довольно просто. Вот ваш Regex:

"\\d{13,16}" 
Смежные вопросы