Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите с регуляркой (https://javascript.ru/forum/misc/69239-pomogite-s-regulyarkojj.html)

bms.java 08.06.2017 10:36

Помогите с регуляркой
 
Есть малюсенький скрипт:
Array.prototype.forEach.call(document.querySelectorAll('a'), function(e){
  if(e.href == 'ссылка на сайт')
    e.href = 'заменнёная ссылка';
});

Помогите добавить регулярку для поиска определенной ссылки (только начало) . Например все ссылки начинающиеся с vk.com/away.php
С регулярками вообще не дружу. Заранее спасибо

ksa 08.06.2017 10:51

Цитата:

Сообщение от bms.java
Например все ссылки начинающиеся с

Как вариант...

var url='vk.com\/away.php?prm=123';
alert(/^vk.com\/away.php/.test(url));


Но ссылки на странице не будут такими, если ты указываешь их сокращенным синтаксисом... ;)

bms.java 08.06.2017 11:08

Разобрался, код получился такой:
Array.prototype.forEach.call(document.querySelectorAll('a'), function(e){
  	if(e.href == (/^https:\/\/vk.com\/away.php/i) || (/^https:\/\/an.yandex.ru/i))
    e.href = 'Sponsorship';
});

Спасибо ksa за помощь

laimas 08.06.2017 11:14

bms.java,
для такого поиска рег. выражения в общем то и не нужны. Смотрите свойства location.

ruslan_mart 08.06.2017 11:50

bms.java, Вы уверены, что Ваш код работает? :)

Да и тут регулярки не нужны.

Array.prototype.forEach.call(document.links, function(link) {
	if(link.href.indexOf('https://vk.com') === 0 || link.href.indexOf('https://an.yandex.ru') === 0) {
		link.href = 'Sponsorship';
	}
});


Но можно куда проще и логичней поступить:

Array.prototype.forEach.call(document.links, function(link) {
	if(link.hostname === 'vk.com' || link.hostname === 'an.yandex.ru')
		link.href = 'Sponsorship';
	}
});

bms.java 08.06.2017 12:06

Действительно работало неверно. Спасибо за помощь


Часовой пояс GMT +3, время: 20:37.