我想将字符串的每个单词包装在<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的某个地方找到了它。但它只将每个单词都包含在空格上,并且也包含标点符号,这在我的情况下是不可取的。
我知道我应该为正则表达式如此糟糕而感到羞耻。
有人可以帮帮我吗?
非常感谢!