2016-12-08 3 views
-2

Как я могу определить регулярное выражение переменным, например, в случае преобразования HTML ссылки тега угловому ссылка тег:Javascript регулярного выражения с переменными

из

<a href="/myapp/home">Home</a> 
<a href="/myapp/about">About</a> 
... many others can include more a, html, divs, tables etc 

в

<a [routerLink]="['/home']">Home</a> 
<a [routerLink]="['/about']">About</a> 
... without change 

Кажется, простая задача, но самое главное, что имена «home» «about» являются динамическими, поэтому мне нужно определить их как что-то переменное, например:

<a{ANYTHING as $1}href="/myapp/{ANYTHING as $2}" 

в

<a $1 [routerLink]="['$2']" 

ответ

1

Я действительно не уверен, что регулярное выражение является лучшим подходом здесь, но вот пример:

str = '<a some content 1 href="/myapp/home" some other content 2>Home</a>' 
 
regex = /<a(.*)href="\/myapp(\/[^"]*)"(.*)>(.*)<\/a>/ 
 
if (regex.test(str)) { 
 
    t = regex.exec(str) 
 
    new_str = '<a' + t[1] + '[routerLink]=\"[\''+t[2] +'\']\"'+t[3]+'>'+t[4]+'</a>' 
 
    console.log(str) 
 
    console.log(new_str) 
 
}

+0

вы, хороший ТНХ. Любые советы о том, что было бы лучше, чем регулярное выражение? – user2771738

+0

Обычно при работе с xml/html мы используем dom-parsing (а не регулярное выражение) – Dekel

+0

В моем случае я могу использовать только javascript-решение, может быть, главная проблема здесь – user2771738

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