Проверка кредитной карты с помощью регулярного выражения?

StackOverflow https://stackoverflow.com/questions/1463252

  •  13-09-2019
  •  | 
  •  

Вопрос

Как правильно подтвердить кредитную карту с помощью регулярного выражения?Если какой из них использовать, то в Интернете их тонны.Если нет, то как проверить?

Это было полезно?

Решение

Как я могу использовать номера кредитных карт, содержащие пробелы? включает в себя все, что вам должно понадобиться.

Другие советы

Смотрите эту ссылку Поиск или Проверка номеров кредитных карт с Регулярными Выражениями

  • Виза:^4[0-9]{12}(?:[0-9]{3})?$ Все номера карт Visa начинаются с 4.Новые карты имеют 16 цифр.На старых картах их 13.
  • MasterCard:^5[1-5][0-9]{14}$ Все номера MasterCard начинаются с цифр с 51 по 55.Все они состоят из 16 цифр.
  • Американский Экспресс:^3[47][0-9]{13}$ Номера карт American Express начинаются с 34 или 37 и состоят из 15 цифр.
  • Закусочный Клуб:^3(?:0[0-5]|[68][0-9])[0-9]{11}$ Номера карт Diners Club начинаются с 300 по 305, 36 или 38.Все они состоят из 14 цифр.Существуют клубные карты Diners, которые начинаются с 5 и состоят из 16 цифр.Они являются совместным предприятием Diners Club и MasterCard и должны обрабатываться как MasterCard.
  • Исследовать:^6(?:011/5[0-9]{2})[0-9]{12}$ Номера карт Discover начинаются с 6011 или 65.Все они состоят из 16 цифр.
  • JCB:^(?: 2131/1800/35 \d{3}) \d {11}$ Карты JCB, начинающиеся с 2131 или 1800, содержат 15 цифр.Карты JCB, начинающиеся с 35, состоят из 16 цифр.

Пока.

Я думаю, вы ищете Алгоритм Луна.Это простая формула контрольной суммы, используемая для проверки различных идентификационных номеров.

Это зависит от того, насколько точной вы хотите, чтобы была ваша предварительная проверка.Чтобы проверить все, что вы можете, вам нужно вычислить, какой должна быть последняя цифра карточки, и сравнить с введенной, чего регулярное выражение сделать не может.

Алгоритм и другие подробности см. эта ссылка, который также предоставляет список общих числовых префиксов, которые вы могли бы проверить на соответствие.

-- Редактировать:

Фактически, я немного не соглашусь с самим собой и соглашусь с клетусом.Подтвердите столько, сколько сможете (не вдаваясь в подробности о конкретных типах кредитных карт [ИМХО]), прежде чем отправлять его дальше.И само собой разумеется (надеюсь), что эта проверка должна быть выполнена на JavaScript, чтобы сделать ее быстрой, а затем на сервере для двойной проверки (и для людей с ограниченными возможностями JavaScript).

-- Предыдущий Ответ:

Не утруждай себя;просто позвольте поставщику подтвердить это, когда вы действительно попытаетесь произвести платеж.Нет законной причины пытаться проверить это самостоятельно.Вы можете использовать это хотя, если тебе действительно этого хочется.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top