butteff
@butteff
Раз в тысячу лет заправляю свитер в носки

Как применить рабочую регулярку в javascript?

Здравствуйте.
В общем, есть строка, на которой я тестирую регулярку:

www.ya.ru lol.ru lolka.ru asdfsdf www.yandex.ru dfgdg sadfasdf ya.ruasdfsadf lol.ru www.lolita.ru ya.ru


Вот регулярка:
(www|http://)([a-zA-Z/.]+)\.(\w+)

тестирую регулярку в sublime text, находит то, что мне нужно:

www.ya.ru
lol.ru
www.yandex.ru
www.lolita.ru
ya.ru


Т.е. регулярка верная.

Теперь, пишу javascript код:
function geturls(task) {
		reg = /(www|http:\/\/)([a-zA-Z\/.]+)\.(\w+)/ig;
		var res = reg.exec(task);
		console.log(res);
	}


в консоли вижу:
["www.ya.ru", "www", ".ya", "ru"]


Почему?
Как мне получить те же значения, что в sublime?
  • Вопрос задан
  • 2788 просмотров
Решения вопроса 1
@ldvldv
javascript.ru/RegExp/exec

Один вызов exec найдет только первое совпадение. Чтобы найти остальные нужен цикл, пока результат не равен null.
Возвращается массив, где первый элемент - всё совпадение, остальные по группам ()
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Dawnreader
function geturls(task) {
reg = /(www|http:\/\/)([a-zA-Z\/.]+)\.(\w+)/ig;
var res = task.match(reg);
console.log(res);
}

Кстати вроде бы lol.ru и ya.ru не должен находить ?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы