使用JavaScript RegEx检索第一段标记内的内容

时间:2017-02-12 20:45:15

标签: javascript regex

我试图只返回第一个

标签内的文字,剥离标签本身......

HTML都在API的字符串中,所以我在React应用程序中转义它,但我想删除HTML来预告段落。将更新帖子。

"content": {
"rendered": "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>\n",
"protected": false
},

查看其他线程,下面应该可以工作,但我不知道如何填充第二个arg来替换p标签的内容:

string.replace(/<p>(.*?)<\/p>/);

另外,有没有办法将它限制在第一段?如果有?

谢谢

2 个答案:

答案 0 :(得分:1)

然后不要替换,而是取而代之:

&#13;
&#13;
var str = '<p>Test Text</p>';
var m = str.match(/<p>([\s\S]*)?<\/p>/i)||[];
str = m[1] || '';
console.log(str);
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您可以使用this将任何html标记替换为它的innerHTML

或者

&#13;
&#13;
const getInnerHTML = (data) => {
  const match = data.match(/<(\w+)>(.*?)<\/\1>/)
  if (match){
    return match[2]
  } else throw new Error("not valid data")
}

console.log(getInnerHTML(`<div>this is innerHTML of div</div>`))
console.log(getInnerHTML(`<p>this is innerHTML of p</p>`))
console.log(getInnerHTML(`<p>this is innerHTML of p`))
&#13;
&#13;
&#13;