Я хотел бы использовать регулярное выражение в Javascript для соответствия строке, содержащей номер в 1-й позиции, а затем название улицы, например:
54 улица Сен-Луис
var res =/[0-9]\s[AZ]\s[AZ-]/.test("8 street Saint-Louis");
выражение, которое я пробовал, выглядит так: var res =/[0-9]\s[AZ]\s[AZ-]/.test("8 street Saint-Louis");
Но он возвращает false...
Любая идея?
вопросы:
[AZ]
: он будет соответствовать только одному алфавиту, поэтому используйте либо *
или +
ваш пример case включает строчные буквы, но ваше регулярное выражение только ищет прописные буквы, поэтому используйте [a-zA-Z]
поэтому используйте ^\d+\s[a-zA-Z]+(\s[a-zA-Z-]*)?$
^\d+
: начинается с одной или нескольких цифр
\s[a-zA-Z]+
: пробел, затем один или несколько алфавитов
(\s[a-zA-Z-]*)?
: ?
нуль или одно совпадение, пробел и ноль или более алфавитов и -
, $
конец конца строки
console.log(/^\d+\s[a-zA-Z]+(\s[a-zA-Z-]*)?$/.test('8 street Saint-Louis'));
console.log(/^\d+\s[a-zA-Z]+(\s[a-zA-Z-]*)?$/.test('8 street'));
console.log(/^\d+\s[a-zA-Z]+(\s[a-zA-Z-]*)?$/.test('8748 street Saint-Louis'));
//-----------------------------------------------------------
console.log(/^\d{1,3}\s[a-zA-Z]+(\s[a-zA-Z-]*)?$/.test('8748 street Saint-Louis'));
-
в конце» - дефис в середине шаблона означает диапазон,az
- это «от a до z». В конце это означает, что сам дефис должен быть частью сопоставляемых символов.$
, сказав в конце :)