Регулярное выражение для почтовых индексов KW

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

^[kK][wW][1-9]\s?[1-9][a-zA-Z]{2}$

Любые идеи?

Изменить:

Я скопировал и вставил неправильный reg ex, вот фактический reg ex:

^[kK][wW][1-9]{2}\s?[1-9][a-zA-Z]{2}$

Действительные почтовые индексы в регионе KW: KW 1-9 и KW 10-17 (но [kK][wW][1-9]{2} их проверит) и формат (без учета регистра) kw, 1/ 2 цифры, необязательный пробел, одна цифра и 2 буквы. Действительный почтовый индекс — KW1 1AA, а недействительный почтовый индекс — KW9 1AA.


person Phil Young    schedule 23.02.2012    source источник
comment
Пример почтового индекса, который вы хотите совместить, и тот, который вам не подходит. Но попробуйте изменить [1-9] на [1-8] для первого [1-9].   -  person Dervall    schedule 23.02.2012


Ответы (3)


Используйте этот простой.

   /^KW[1-8][0-9]?\s?[1-9][A-Z]{2}$/i

Добавление /i делает его нечувствительным к регистру.

Это соответствует KW1-8 и KW10-89. Он не соответствует KW9 или KW90-99.

person Shiplu Mokaddim    schedule 23.02.2012
comment
@IgorKorkhov Нет Совпадает. я обновил. Но вы проверили старшую. :П - person Shiplu Mokaddim; 23.02.2012
comment
Спасибо @Shiplu :) Я использовал твой, чтобы сделать ^[kK][wW][1-8][0-9]?\s?[1-9][a-zA-Z]{2}$ - person Phil Young; 23.02.2012

Попробуй это:

^(KW|Kw|kW)9\s?[1-9][a-zA-Z]{2}$

Это должно улавливать все значения KW9, нечувствительные к регистру, кроме kw9 (нижний регистр).

person Roee    schedule 23.02.2012
comment
Он должен соответствовать всем действительным почтовым индексам, кроме kw9, так как именно так их принимает раздел доставки ubercart, поскольку он является частью гораздо большего регулярного выражения. - person Phil Young; 23.02.2012

Попробуй это:

/^kw([1-8]|1[0-7])\s?[1-9][a-z]{2}$/i

Я включил опцию «без учета регистра». А для 1-8 + 10-17 я только что использовал синтаксис (...|...). Если вам не нужно захватывать этот номер, вы можете использовать префикс «без захвата»:

/^kw(?:[1-8]|1[0-7])\s?[1-9][a-z]{2}$/i
person Patrick Janser    schedule 23.02.2012