2016-06-08 5 views
-1

Это регулярное выражение Javascript пытается преобразовать
href=/m3/whaever в href=http://abc.xyz.com/m3/whateverссылка регулярное выражение номер группы, когда дополнительный кронштейн присутствует

const link = 'http://abc.xyz.com'; 
return html.replace(/([(href=)|(src=")|(src=)])(\/m3)/g, '$1' + link + '$5'); 

производит

href=http://abc.xyz.com$5

Что я не так? Спасибо

+0

Что хранит переменная '' html''? и что вы хотите получить именно? – Ismail

+0

@hamism аргумент передан функции, где этот код. –

+0

прочитал о классах персонажей, чтобы понять, что это такое. –

ответ

0

[...] используется для определения классов символов, а не группы альтернатив.

[(href=)|(src=")|(src=)] 

соответствует персонажу одного, что какой-либо из символов внутри скобок, т.е. это эквивалентно

[cefhrs()="] 

() использования в группу альтернативы.

return html.replace(/(href=['"]?|src=['"]?)(\/m3)/g, '$1' + link + '$2'); 

? делает кавычки необязательны, вам не нужны отдельные альтернативы для них.

0

Квадратные скобки предназначены для символов, а не целых строк. Попробуйте вместо этого:

const link = 'http://abc.xyz.com'; 
 
var html = '<a href="/m3/">test</a>'; 
 
console.log(html.replace(/(href=["']?|src=["']?)(\/m3)/g, '$1' + link + '$2'));

Смежные вопросы