首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用javascript将<p> <span>Hello</span> </p>拆分为<span>Hello</span>

如何使用javascript将<p> <span>Hello</span> </p>拆分为<span>Hello</span>
EN

Stack Overflow用户
提问于 2010-08-29 02:42:52
回答 4查看 1.1K关注 0票数 3

如何使用javascript将<p><span>Hello</span></p>拆分为<span>Hello</span>

代码语言:javascript
复制
var text = "<p><span>Hello</span></p>";

记住:我不知道什么包含<p>,我不知道<p>是否有任何属性

我找到答案了!

代码语言:javascript
复制
var patt=/^<p.*?>(.*)<\/p>$/i;
var result=patt.exec(text);
alert(result[1]); 

谢谢ring0 & w3schools regexp.asp

但还是有问题的!它不适用于

代码语言:javascript
复制
aa<p><span>Hello</span></p>aa
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-08-29 04:06:02

负责删除p属性的正则表达式

代码语言:javascript
复制
var new = text.replace(/^<p[^>]*>(.*)<\/p>$/i, "$1");

或使用.*?的版本

代码语言:javascript
复制
var new = text.replace(/^<p.*?>(.*)<\/p>$/i, "$1");

如果<pre><param>可能启动text,则必须防止匹配

代码语言:javascript
复制
var new = text.replace(/^<p\b.*?>(.*)<\/p>$/i, "$1");

编辑回答第二个问题

移除之前/之后的任何东西

代码语言:javascript
复制
var new = text.replace(/^.*<p\b[^>]*>(.*)<\/p>.*$/i, "$1");

但是,如果要删除所有<p...>和所有</p>,则应使用以下两行

代码语言:javascript
复制
var new = text.replace(/<p\b.*?>/ig, "");
new = text.replace(/<\/p>/ig, "");
票数 1
EN

Stack Overflow用户

发布于 2010-08-29 02:46:56

不要对此执行字符串操作,请使用DOM。

代码语言:javascript
复制
// create a dummy container div element
var tempDiv = document.createElement('div');
// insert the desired html inside this container
tempDiv.innerHTML = "<p><span>Hello</span></p>";
// find the first para, and get its html
tempDiv.getElementsByTagName("p")[0].innerHTML; // contains "<span>Hello</span>"

试试这个片段

如果您使用的是像jQuery这样的框架,您可以使用:

代码语言:javascript
复制
$("<p><span>Hello</span></p>").html()

试试这个片段

票数 12
EN

Stack Overflow用户

发布于 2010-08-29 02:50:05

你到底想要什么?

  • 您可以使用一个子字符串:text.substr(3, 18)来提取它。
  • 您可以使用regex:text.match(/<span>([^<]+)<\/span>/)
  • 您可以坚持这是DOM并将其解析出来。

你需要更好地解释这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3593341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档