2013-07-27 2 views
12

Я пытаюсь создать регулярное выражение в javascript для проверки голландского zipcode.Регулярное выражение для голландского почтового индекса

почтовый индекс должен содержать 4 цифры, затем, необязательно пространство, а затем 2 (чувствительно к регистру) буквы

Допустимые значения:

1001aa 
1001Aa 
1001 AA 

теперь у меня есть это, но он не работает:

var rege = /^([0-9]{4}[ ]+[a-zA-Z]{2})$/; 
+1

Вы используете разделители в пространстве, вы используете их для определения диапазона символов, например. '[0-6]' делает 0 до 6. Просто замените его на '?' (Пробел и вопросительный знак, чтобы сделать его необязательным – Martijn

+4

В стороне: голландские почтовые индексы никогда не начинаются с нуля. – Arjan

+3

Также нет почтовых индексов, заканчивающихся на SS, SA или SD. – Bart

ответ

39

Отредактировано для того, чтобы не обрабатывать ничтожное требование к голландским почтовым индексам и исключать совпадения для SS, SA и SD. Это должно сделать все для вас.

Final регулярное выражение:

var rege = /^[1-9][0-9]{3} ?(?!sa|sd|ss)[a-z]{2}$/i; 

Fiddle испытательная установка: http://jsfiddle.net/hgU3u/

Вот расстройство:

  1. ^ матчи начало строки
  2. [1-9][0-9]{3} соответствует одной ненулевой цифры, и три 0-9 цифр
  3. ? соответствует 0 или 1 пространства (вы можете использовать *, чтобы соответствовать 0 или более пробелов)
  4. (?!sa|sd|ss) тест опережения, чтобы проверить, что остаток не «са», «сд», или «сс».
  5. [a-z]{2} матчи 2 A-Z символов
  6. $ соответствует концу строки
  7. i в конце концов, это не чувствительны к регистру модификатор
+0

Да, это также правильное решение. A + в регулярном выражении - это один или несколько «ударов» предыдущего регулярного выражения (или шаблон в круглых скобках). –

5

Вот мое решение. Я в конце концов, делает его не чувствительны к регистру:

var rege = /^\d{4} ?[a-z]{2}$/i; 
1

В случае, если у вас есть проблемы с использованием этого в качестве шаблона для начальной загрузки проверки я предлагаю вам изменить его на:

^[1-9][0-9]{3} ?(?!sa|sd|ss|SA|SD|SS)[A-Za-z]{2}$ 

Это так, как это до сих пор дело - нечувствительный и принимается валидатором загрузки.

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