タグを含む文字列の、特定のタグの前後に文字列(タグを)追加したいです。
例えば
"<p>あいう</p>"
↓
"<p><span>あいう</span></p>"
のような変換がしたいです。
str.replaceを使えばできると思ったのですが、
"<p>あいう</p>"
は
"<p class="some-class">あいう</p>"
のようにクラスを持っているパターンがあり、このクラスがを残したいです。
つまり
'<p class="some-class">あいう</p>'
↓
'<p class="some-class"><span>あいう</span></p>'
このように変換したいです...。
replaceで<p>を<p><span>に変更する命令では、pタグがクラスを持ってる場合に変換ができません...。
どのようにすればいいんでしょうか。
コメントありがとうございます。
これは文字列に対して行います。
正規表現が苦手でうまくできない状態です...
js
1const addTag = (str) => { 2 var pattern = new RegExp('<p>', 'gim') 3 return str.replace(pattern, '<p><span>') 4}
例えば上記コードだと
<p>を置き換えることはできるけど、<p class="some-class">を置き換えることはできない それと '<p class="some-class">some text</p>'の場合は '<p class="some-class"><span>some text</span></p>' としたいが、中の class="some-class" の部分が消えてしまう。 などの問題があります。 この辺は変数などをうまく使うんでしょうか。さらにこのstrは複数のpタグを含みます
<p class="some-class1">あいう</p> <p class="some-class2">えお</p>このような文字列を
<p class="some-class1"><span>あいう</span></p> <p class="some-class2"><span>えお</span></p>のように変換したいです
回答3件
あなたの回答
tips
プレビュー