Regexp с переменными: как преобразовать XML с атрибутами в HTML, используя метод замены JavaScript? - PullRequest
0 голосов
/ 17 ноября 2011

Извинения, если это дуплекс, я искал, но не смог найти информацию, которую искал.

Используя javascript, я хочу найти строку, найти тег, сопоставить атрибуты в тегеи сохраните их как переменные для перезаписи.Вот часть строки, которую я ищу:

<my_child name="view" gso="g--" type="Application.View">

, которую я хотел бы преобразовать в:

<tr><td>view</td><td>Appication.View</td><td>g--</td></tr>

Вот регулярное выражение, которое я пробую.Я не думаю, что он действительно находит совпадение:

objString = objString.replace(/<my_child name="(.*)" gso="(.*)" type="(.*)">/g, '<tr><td>'+RegExp.$1+'</td><td>'+RegExp.$3+'</td><td>'+RegExp.$2+'</td><td>');

РЕДАКТИРОВАТЬ: РЕШЕНО.

Спасибо за совет kiamlaluno.Оказывается, я также не принимал во внимание неопределенное количество пробелов между атрибутами.Вот обновленное регулярное выражение:

/<my_child[ ]+name="([^"]*)"[ ]+gso="([^"]*)"[ ]+type="([^"]*)"[ ]*>/g, '<tr><td>$1</td><td>$3</td><td>$2</td><td>'

1 Ответ

0 голосов
/ 17 ноября 2011

вы можете заменить

'<tr><td>'+RegExp.$1+'</td><td>'+RegExp.$3+'</td><td>'+RegExp.$2+'</td><td>'

с

'<tr><td>$1</td><td>$3</td><td>$2</td><td>'

и (.*) совпадения, вероятно, должны быть ([^"]*) вместо

Может быть, это поможет вам стать ближе?

...