Я предполагаю, что мне нужно регулярное выражение здесь?
У меня есть поле почтового индекса, и почтовые индексы должны быть в черте города Чикаго. К счастью, все почтовые индексы начинаются с 606. Поэтому мне нужно опросить ввод, чтобы убедиться, что введенный почтовый индекс состоит из 5 цифр и начинаться с цифр 606:
Мой ввод достаточно прост:
<label for="dzip"><span class="red">♥ </span>Zip:</label>
<input name="attributes[address_zip]" id="dzip" type="text" size="30" class="required zip-code" />
И тогда мой сценарий для города был достаточно легким. Мне просто нужно применить его и к почтовому индексу:
jQuery.validator.addMethod("Chicago", function(value) {
return value == "Chicago";
}, '**Recipient must reside in Chicago City Limits**');
Может помочь, если я покажу, как работает плагин для телефонных номеров (США). В основном мне нужно перевести это на молнии:
jQuery.validator.addMethod("phoneUS", function(phone_number, element) {
phone_number = phone_number.replace(/\s+/g, "");
return this.optional(element) || phone_number.length > 9 && phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
}, "Please specify a valid phone number");
Что эта часть делает / означает?:
phone_number.replace(/\s+/g, "")
Я добавил телефонную часть непосредственно из примера на сайте проверки.
Окончательный ответ от всех великих (и быстрых) отзывов был такой:
jQuery.validator.addMethod("zip-code", function(zip_code, element) {
zip_code = zip_code.replace(/\s+/g, "");
return this.optional(element) || zip_code.length == 5 && zip_code.match(^606[0-9]{2}$);
}, "Please specify a City of Chicago Zip Code");