<span>
既存の html タグを壊したり、句読点を含めたりせずに、文字列のすべての単語をタグでラップしたいと考えています。
たとえば、次の文字列:
This... is, an. example! <em>string</em>?!
次のようにラップする必要があります。
<span>This</span>... <span>is</span>, <span>an</span>. <span>example</span>!
<span><em>string</em></span>?!
理想的には、単語をラップするだけで、他には何もラップする必要はありません。
アポストロフィを除いて、それらもラップする必要があります。
it's
=><span>it's</span>
give 'em
=><span>give</span> <span>'em</span>
teachers'
=><span>teachers'</span>
現在、非常に単純な正規表現を使用しています。
str.replace(/([^\s<>]+)(?:(?=\s)|$)/g, '<span>$1</span>');
ここstackoverflowのどこかで見つけました。しかし、空白のすべての単語をラップするだけで、句読点もラップします。これは私の場合は望ましくありません。
正規表現が苦手な自分を恥じるべきなのはわかっています。
誰か助けてくれませんか?
どうもありがとう!