Найти и заменить короткую часть URL с помощью Javascript

#javascript

#javascript

Вопрос:

Предположим, у меня есть следующий URL, сохраненный в переменной с именем content :

http://www.example.com/watch?v=4444444amp;feature=related

Проблема:

  1. Мне нужно заменить watch?v= с помощью embed/
  2. Мне нужно стереть все, что приходит после amp;

Конечный результат будет выглядеть следующим образом:

http://www.example.com/embed/4444444

Я попробовал эти два шага, но не сработало:

 content = content.replace('/watch?v=/', 'embed/');
content = content.replace('amp;*/g','');
  

URL-адрес в исходном коде страницы отображается как:

http://www.example.com/watch?v=4444444amp;feature=related

Ответ №1:

У вас много ошибок:

  • Вы используете регулярное выражение, когда вам нужна только строка.
  • Вы пишете свои регулярные выражения в виде строк.
  • Чтобы написать «сопоставлять любые символы», вам нужно написать '.*' , а не просто '*' . Звездочка изменяет предыдущий токен.
  • Здесь нет необходимости использовать g флаг.

Попробуйте это вместо:

  content = content.replace('watch?v=', 'embed/').replace(/amp;.*/, '');