Регулярные выражения
var regV = /(\d)?(шоссе)?(км)?(улица)?([a-zA-Z-])?/g;
Есть такое выражение, чтобы были цифры в строке или не было, чтобы было слово шоссе или не было, км, улица и буквы английские. Однако при выполнении например методом match наблюдаю в качестве результата, если в строке нет ничего подобного большое количество запятых. var myString = "Черемушинский сельсовет, Лебяжьевский район, Курганская область, Уральский федеральный округ" var Result = myString.match(regV); И в итоге Result=,,,,,,,,,,, |
эмм))
а что там хотели наблюдать?))) Result - это массив var regV = /(\d)?(шоссе)?(км)?(улица)?([a-zA-Z-])?/g; - эта регулярка подходит вообще подо все, притом подгруппы не запоминаются отдельно - т.е. (улица) это будет тоже самое что и (?:улица) соответственно в массиве столько элементов сколько и символов в строке +1 т.к. поиск начинается с 0 символа-> находит совпадение пустоту->заносит ее в массив-> сдвигается в бок на символ и все повторяется пока не дойдет до конца строки. а если вы массив выводите алертом или ее чем, то соответственно там и запятые вылазят )) Цитата:
Пишите какой результат хотите и для чего это вообще. |
Цитата:
myString="Московская область"; Хочу получить результат -1, если в этой строки нет слов улица, шоссе, км, а также чисел и букв английского алфавита. Но у меня получаются сплошные запятые и результат равен 0. |
myString="Московская область"; alert( myString.search(/шоссе|км|улица|[a-zA-Z\d]/) ); myString="Московская улица"; alert( myString.search(/шоссе|км|улица|[a-zA-Z\d]/) ); |
Часовой пояс GMT +3, время: 06:40. |