Jquery для проверки номера NI

#jquery #validation

#jquery #проверка

Вопрос:

 $.validator.addMethod(
    "ninumber",
    function(value, element) {
        return this.optional(element)
          || /^[A-CEGHJ-PR-TW-Z]{1}[A-CEGHJ-NPR-TW-Z]{1}[0-9]{6}[A-DFM]{0,1}$/.test(value);
    },
    "Please enter a valid NI Number."
);
  

Может ли кто-нибудь заметить какие-либо проблемы с примером кода? Мне кажется, все в порядке, но правильные значения по-прежнему отображаются как имеющие ошибку. Я использую плагин проверки jQuery, чтобы добавить метод для номера NI.

Ответ №1:

Он не допускает пробелов, поэтому вам нужно сначала удалить их. Я только что проверил, и он проверяет мой номер NI, но только без пробелов.

Итак, вы хотели бы что-то вроде:

 /^[A-CEGHJ-PR-TW-Z]{1}[A-CEGHJ-NPR-TW-Z]{1}[0-9]{6}[A-DFM]{0,1}$/.test(value.replace(/s/g, ''));
  

если вы действительно хотели сохранить его для проверки в одну строку. Лично я бы переформатировал / реорганизовал:

 $.validator.addMethod("ninumber", function(value, element) {
  var regexp = /^[A-CEGHJ-PR-TW-Z]{1}[A-CEGHJ-NPR-TW-Z]{1}[0-9]{6}[A-DFM]{0,1}$/;
  var strippedValue = value.replace(/s/g, '');
  return this.optional(element) || regexp.test(strippedValue);
},  "Please enter a valid NI Number.");
  

Комментарии:

1. Спасибо за быстрый ответ! Высоко ценится

2. @Rachel Проблем нет, рад помочь 🙂