Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.05.2013, 23:48
Аватар для I'm_Lazy
Новичок на форуме
Отправить личное сообщение для I'm_Lazy Посмотреть профиль Найти все сообщения от I'm_Lazy
 
Регистрация: 06.05.2013
Сообщений: 9

Регулярные выражения
var regV = /(\d)?(шоссе)?(км)?(улица)?([a-zA-Z-])?/g;
Есть такое выражение, чтобы были цифры в строке или не было, чтобы было слово шоссе или не было, км, улица и буквы английские. Однако при выполнении например методом match наблюдаю в качестве результата, если в строке нет ничего подобного большое количество запятых.
var myString = "Черемушинский сельсовет, Лебяжьевский район, Курганская область, Уральский федеральный округ"
var Result = myString.match(regV);
И в итоге Result=,,,,,,,,,,,
Ответить с цитированием
  #2 (permalink)  
Старый 11.05.2013, 03:40
Аспирант
Отправить личное сообщение для edison Посмотреть профиль Найти все сообщения от edison
 
Регистрация: 01.04.2013
Сообщений: 58

эмм))
а что там хотели наблюдать?)))
Result - это массив
var regV = /(\d)?(шоссе)?(км)?(улица)?([a-zA-Z-])?/g; - эта регулярка подходит вообще подо все, притом подгруппы не запоминаются отдельно - т.е. (улица) это будет тоже самое что и (?:улица)
соответственно в массиве столько элементов сколько и символов в строке +1
т.к. поиск начинается с 0 символа-> находит совпадение пустоту->заносит ее в массив-> сдвигается в бок на символ и все повторяется пока не дойдет до конца строки.
а если вы массив выводите алертом или ее чем, то соответственно там и запятые вылазят ))
Цитата:
и буквы английские
не буквы, а буква, одна и цифра тоже одна )))

Пишите какой результат хотите и для чего это вообще.
Ответить с цитированием
  #3 (permalink)  
Старый 11.05.2013, 16:48
Аватар для I'm_Lazy
Новичок на форуме
Отправить личное сообщение для I'm_Lazy Посмотреть профиль Найти все сообщения от I'm_Lazy
 
Регистрация: 06.05.2013
Сообщений: 9

Сообщение от edison Посмотреть сообщение
эмм))
а что там хотели наблюдать?)))
Result - это массив
var regV = /(\d)?(шоссе)?(км)?(улица)?([a-zA-Z-])?/g; - эта регулярка подходит вообще подо все, притом подгруппы не запоминаются отдельно - т.е. (улица) это будет тоже самое что и (?:улица)
соответственно в массиве столько элементов сколько и символов в строке +1
т.к. поиск начинается с 0 символа-> находит совпадение пустоту->заносит ее в массив-> сдвигается в бок на символ и все повторяется пока не дойдет до конца строки.
а если вы массив выводите алертом или ее чем, то соответственно там и запятые вылазят ))

не буквы, а буква, одна и цифра тоже одна )))

Пишите какой результат хотите и для чего это вообще.
Смотрите, допустим есть строка
myString="Московская область";

Хочу получить результат -1, если в этой строки нет слов улица, шоссе, км, а также чисел и букв английского алфавита. Но у меня получаются сплошные запятые и результат равен 0.
Ответить с цитированием
  #4 (permalink)  
Старый 11.05.2013, 21:39
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

myString="Московская область";
alert(
    myString.search(/шоссе|км|улица|[a-zA-Z\d]/)
);

myString="Московская улица";
alert(
    myString.search(/шоссе|км|улица|[a-zA-Z\d]/)
);
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярные выражения alex2012 Общие вопросы Javascript 5 23.02.2013 19:49
Регулярные выражения для javascript qwert_ukg Общие вопросы Javascript 3 20.04.2012 13:45
Регулярные выражения vivalaakam Общие вопросы Javascript 6 08.02.2012 09:41
нежадные регулярные выражения KOLANICH Общие вопросы Javascript 2 12.12.2010 01:08
Функции поиска и замены строк или регулярные выражения? Armen Общие вопросы Javascript 1 01.01.2010 12:35