Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.06.2017, 10:36
Новичок на форуме
Отправить личное сообщение для bms.java Посмотреть профиль Найти все сообщения от bms.java
 
Регистрация: 19.11.2015
Сообщений: 6

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

Помогите добавить регулярку для поиска определенной ссылки (только начало) . Например все ссылки начинающиеся с vk.com/away.php
С регулярками вообще не дружу. Заранее спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 08.06.2017, 10:51
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,214

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

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


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

Последний раз редактировалось ksa, 08.06.2017 в 10:59.
Ответить с цитированием
  #3 (permalink)  
Старый 08.06.2017, 11:08
Новичок на форуме
Отправить личное сообщение для bms.java Посмотреть профиль Найти все сообщения от bms.java
 
Регистрация: 19.11.2015
Сообщений: 6

Разобрался, код получился такой:
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 за помощь
Ответить с цитированием
  #4 (permalink)  
Старый 08.06.2017, 11:14
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

bms.java,
для такого поиска рег. выражения в общем то и не нужны. Смотрите свойства location.
Ответить с цитированием
  #5 (permalink)  
Старый 08.06.2017, 11:50
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

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';
	}
});

Последний раз редактировалось ruslan_mart, 08.06.2017 в 11:55.
Ответить с цитированием
  #6 (permalink)  
Старый 08.06.2017, 12:06
Новичок на форуме
Отправить личное сообщение для bms.java Посмотреть профиль Найти все сообщения от bms.java
 
Регистрация: 19.11.2015
Сообщений: 6

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



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите с регуляркой, пожалуйста lvovitch Общие вопросы Javascript 3 11.11.2015 08:24
Помогите пожалуйста с регуляркой vivalaakam Общие вопросы Javascript 4 11.04.2014 16:35
Помогите разобраться с регуляркой shtormIK Общие вопросы Javascript 6 26.06.2012 20:02
Помогите плз с регуляркой zsaz jQuery 1 25.05.2012 18:41
Помогите с регуляркой... alexKniaz AJAX и COMET 0 03.11.2008 01:16