如何从Javascript字符串中删除一大块文本?

时间:2010-12-14 21:36:46

标签: javascript

我正在尝试通过JavaScript分析一段文本,并且阅读,已经了解到使用Regex解析HTML是quite evil。在分析之前,我想删除文本中更险恶的部分。

如果我有一大块文本,如下面的项目,我怎么能(1)切片从[caption][/caption]的所有内容,以及(2)将该文本存储在一个新的var中? / p>

Sed rutrum enim sit amet sem fringilla egestas placerat mauris pretium. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris ultricies egestas malesuada. Etiam rhoncus eros a leo imperdiet vitae tincidunt purus laoreet. Mauris ut mauris quam, sed pharetra urna. Etiam eu enim mauris, vitae bibendum orci. Quisque ac sapien massa, at dignissim tellus.

[caption id="blah" align="alignleft" width="123" caption="Lorem ipsum dolor sit, consectetur adipiscing elit."]<a href="http://www.google.com/something"><img title="Lorem ipsum dolor sit, consectetur adipiscing elit." src="http://google.com/something/else.png" alt="Lorem ipsum dolor sit, consectetur adipiscing elit." width="345" /></a>[/caption]

Aenean faucibus mi sit amet leo suscipit nec egestas leo ultrices. Integer tincidunt, urna quis varius accumsan, urna quam congue nulla, ut ornare orci purus in ligula. Suspendisse varius, tellus aliquam tincidunt, ante semper elit, sit amet tincidunt elit augue eget odio. Vivamus sit amet tincidunt massa. Sed nunc ligula, feugiat quis volutpat congue, eleifend in tellus. Curabitur ut dictum felis. Nunc sodales euismod leo, in commodo elit ornare hendrerit. Cras luctus eros id nisl vestibulum elementum. Maecenas ut neque turpis. Donec ornare hendrerit rutrum. Non nibh leo, dictum ullamcorper dui.

3 个答案:

答案 0 :(得分:2)

您也可以使用正则表达式:

var split = text.split(/\[\/?caption[^\]]*\]/);

并将split [1]作为结果

答案 1 :(得分:1)

您可以使用.split()

var temp = yourText.split("[caption")

这会给你:

temp [0],包含“[caption”

之前的所有内容

temp [1]包含“[caption”之后的所有内容

然后,您可以继续拆分/连接数组片段以消除字符串中的任何部分。

答案 2 :(得分:1)

  • 如果你正在解析纯文本,没有办法比使用正则表达式更容易,至少在js中没有内置函数来执行它。
  • 如果你在浏览器中解析HTML,有很多简单的方法可以使用DOM树和DOM函数来实现它,这是推荐的方法。像jQuery这样的js框架使这项任务尽可能简单。
  • 如果您在服务器端解析HTML,例如通过node.js,还有用于创建和使用jsdom等DOM的库,再次使用DOM函数可以实现。