Регулярное выражение для адреса улицы

Я пытаюсь сопоставить уличные адреса, содержащие улицу и номер.

Мне нужно выражение, чтобы соответствовать словам для названия улицы, а затем номер.

Например, я хочу совместить «somestreet 25», «другую улицу 23», «третью улицу 190», но не «a_fourth street 67».

Я пытаюсь с ним в течение часа, но я не очень хорошо разбираюсь в регулярных выражениях.

Пока что у меня есть /^[a-zA-Z]+([\s][a-zA-Z]+)([\s][0-9]){1,4}$/ но, разумеется, он не работает.

— РЕДАКТИРОВАТЬ —

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

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

Все, что я хочу, это не дать им получить спам с глупыми символами @ # $ в адресе и иметь для них достойное чтение для форматирования адресов.

Это должно работать на ваших примерах:

 /^[a-zA-Z]([a-zA-Z-]+\s)+\d{1,4}$/ 

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

 /^([az- ]+)\s+([0-9]+)$/i 

Но как насчет меня? Я живу на 30th Ave.

Кстати, я использовал [0-9]+ для одного или нескольких номеров в конце, а не для вашего диапазона {1,4} . Если вы не должны иметь больше 4, переключите его обратно в диапазон {1,4} .

Это будет

  /^([AZ][-AZ ]+)\s+(\d+)$/i 

Я думаю, что названия улиц не имеют регулярного образования. Так что регулярное выражение не применимо для этого