Как заменить определенный URL в атрибуте "href" с помощью регулярного выражения? - PullRequest
2 голосов
/ 10 июня 2019

Я бы хотел заменить только href URL-адрес, который содержит одну прямую косую черту (/), используя регулярное выражение.

Вот моя строка:

var p = '<link href="/example.com"/> <link href="//example2.com"/>';

Вот мой код, но он соответствует атрибуту href обоих элементов.

var p = '<link href="/example.com"/> <link href="//example2.com"/>';
var re = /href="\//gi;
var newstr = p.replace(re, 'href="/baseurl/');

Ответы [ 2 ]

3 голосов
/ 10 июня 2019

Попробуйте использовать это вместо:

const links = `
  <a href="/example.com">Example</a>
  <a href='//example.com'>Example</a>
`;

const re = /href=(["']{1})\/{1}([^\/])/gi;

console.log(links.replace(re, 'href=$1/baseurl/$2'));

Удачи.

0 голосов
/ 10 июня 2019

var p = '<link href="/example.com"/> <link href="//example2.com"/>';
var re = /href="\/([A-z0-9])/gi;
var newstr = p.replace(re, 'href="/baseurl/$1');
console.log(newstr);

Это заменит только URL-адреса с одиночной косой чертой, а также при наличии нескольких таких URL-адресов также будет заменено

...