Просмотр полной версии : Помогите с регуляркой
bms.java
08.06.2017, 10:36
Есть малюсенький скрипт:
Array.prototype.forEach.call(document.querySelecto rAll('a'), function(e){
if(e.href == 'ссылка на сайт')
e.href = 'заменнёная ссылка';
});
Помогите добавить регулярку для поиска определенной ссылки (только начало) . Например все ссылки начинающиеся с vk.com/away.php
С регулярками вообще не дружу. Заранее спасибо
Например все ссылки начинающиеся с
Как вариант...
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.querySelecto rAll('a'), function(e){
if(e.href == (/^https:\/\/vk.com\/away.php/i) || (/^https:\/\/an.yandex.ru/i))
e.href = 'Sponsorship';
});
Спасибо ksa за помощь
bms.java,
для такого поиска рег. выражения в общем то и не нужны. Смотрите свойства location (https://developer.mozilla.org/ru/docs/Web/API/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
Действительно работало неверно. Спасибо за помощь
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot