2014-12-12 1 views
-2

На данный момент я работаю над программой проверки кредитной карты с алгоритмом Луна. Пока это работает, но следующая вещь - сказать, какой банк выдает карточку. Конечно, не все из них, всего несколько.Как хранить несколько номеров под одним именем

Вопрос: Каков надлежащий способ хранения возможных шестизначных номеров под одним эмитентом?

Один банк может иметь 5-10-20 начальную последовательность цифр, но я не могу определить правильный метод хранения данных.

+1

почему у не попробовать ** Список ** коллекция –

+0

Если нет базы данных бэкенд , то, возможно, рассмотрите sqlite как решение для хранения данных. Вы также посмотрите на структуру таблицы «один ко многим» для хранения данных на банк с несколькими последовательностями. – user3036342

ответ

-1

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

Некоторые Объяснение найти на веб-сайте:

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

тогда делает:

?:4[0-9]{12}(?:[0-9]{3})?   # Visa 
| 5[1-5][0-9]{14}     # MasterCard 
| 3[47][0-9]{13}     # American Express 
| 3(?:0[0-5]|[68][0-9])[0-9]{11} # Diners Club 
| 6(?:011|5[0-9]{2})[0-9]{12}  # Discover 
| (?:2131|1800|35\d{3})\d{11}  # JCB 
)$ 

Кредиты:

+0

Извините, ребята, проблема с новичком. Но он отвечает на вопрос, разрезаю ли я и вставляю контент ссылки? Я предпочитаю оставлять кредиты на странице – FrenchW

+0

. Я не спускал вниз, но я также не думаю, что это отвечает на вопрос, который задают, они выглядят для типов карт, а не для банковских эмитентов. (Как примечание, я также считаю забавным, что «регги могут отправить матч») – Sayse

+0

Спасибо FrenchW, но это не решение, которое я ищу.Вероятно, пример поможет лучше объяснить мой вопрос: Карты Visa RBS начинаются с этих цифр: 446279 475116 475117 475118 475126 476225 484474 Я ищу структуру данных, в которой эти числа могут быть сохранены, например. Название RBS-Visa. – Paxsentry

 Смежные вопросы

  • Нет связанных вопросов^_^