JQuery Regex, чтобы найти предложение соответствия в htmlstring
Я хочу найти соответствие для "Исходной стоимости в $0,5 млн." И заменить его тегом обтекания. Текст появится внутри любого тега, такого как td, шрифт и т. Д. Просто найдите его и оберните с помощью span?
Строка:
var str = '<td><font style="font: 8pt arial, helvetica, sans-serif">Original cost basis <b>$0.5</b> million</font></td>';
Ожидаемый результат:
'<td><font style="font: 8pt arial, helvetica, sans-serif"><span>Original cost basis <b>$0.5</b> million<span></font></td>'
4 ответа
Исходя из вашего комментария к моему предыдущему ответу, кажется, что проблема не в том, что я прочитал, и HTML не может гарантировать, что он будет в этой структуре.
Вместо этого я буду предполагать, что строка находится в листе (самая низкая часть) HTML-дерева. Попробуй это:
str.replace(/>([^<]+)</, '<span>$1<\span>');
var str = '<td><font style="font: 8pt arial, helvetica, sans-serif">Original cost basis $0.5 million</font></td>';
var replacetext= str.replace(/Original cost basis $0.5 million/g, "New text");
alert(replacetext);
document.write(replacetext);
Вы просили решение для регулярных выражений, но есть также replace()
метод.
var str = '<td><font style="font: 8pt arial, helvetica, sans-serif">Original cost basis $0.5 million</font></td>';
var res = str.replace("Original cost basis $0.5 million", "My new replacement")
console.log(res);
replace()
Метод работает так:
replace('string to find', 'string that is used to replace the found string');
W3 Документация здесь
Вы могли бы использовать .replace()
метод:
var str = '<td><font style="font: 8pt arial, helvetica, sans-serif">Original cost basis $0.5 million</font></td>';
var res = str.replace(/(<td><font.*>)(.*)(<\/font><\/td>)/, '$1<span>$2</span>$3');
Приведенный выше фрагмент кода соответствует открытию td
а также font
теги, что находится внутри тегов шрифта, и помещает их в "группу", на которую ссылается $1
, Затем он вставляет span
тег. Затем он вставляет строку, которую вы пытаетесь обернуть span
s, на которые ссылается $2
, Затем он вставляет закрывающий /span
тег. Наконец, он закрывает /font
и теги '/td' в конце, на которые ссылается $3
,
Перед матчем:
<td><font style="font: 8pt arial, helvetica, sans-serif">Original cost basis $0.5 million</font></td>
После матча и заменить:
<td><font style="font: 8pt arial, helvetica, sans-serif"><span>Original cost basis $0.5 million</span></font></td>
Ссылка на документацию Mozilla здесь: