正则表达式从 HTML 中删除 Span 标记



>我需要一些正则表达式来删除具有特定类(包括结束标签(的 span 标签,但不想删除介于两者之间的内容...... 我不想删除任何其他范围标签

我无法想出它,因为我往往会忘记正则表达式技巧:(

我有这个

<span class="SpellE">system_user.user_name</span>
<span>This is some text</span>
<Span class="OtherCLass">Some other text</span>
<span class="SpellE">system_user.userid</span>

我想要这个结果

system_user.user_name
<span>This is some text</span>
<Span class="OtherCLass">Some other text</span>
system_user.userid

是的,我需要整理一些凌乱的MS Html:)

提前致谢

以下正则表达式应符合您的要求:

<span class="SpellE">(.*)</span>

它将跨度与 class='SpellE' 匹配,从而创建一组跨度文本。

然后,您应该将匹配项替换为组 1。

在 JavaScript 中,你可以像这样使用它:

var testStr = '<span class="SpellE">system_user.user_name</span>n'
+ '<span>This is some text</span>n'
+ '<Span class="OtherCLass">Some other text</span>n'
+ '<span class="SpellE">system_user.userid</span>n';
var regex = /<span class="SpellE">(.*)</span>/gi;
var result = testStr.replace(regex, '1');

现在结果应该是您想要的输出。

偶然发现了这个旧帖子...Poul发布的Javascript解决方案需要稍作更改才能正常工作:

var testStr = '<span class="SpellE">system_user.user_name</span>n'
+ '<span>This is some text</span>n'
+ '<Span class="OtherCLass">Some other text</span>n'
+ '<span class="SpellE">system_user.userid</span>n';
var regex = /<span class="SpellE">([^<]*)</span>/gi;
var result = testStr.replace(regex, '$1');

最新更新