有没有一种简单的方法可以在JavaScript中提取一串html并去掉它?
发布于 2009-05-04 22:42:52
myString.replace(/<[^>]*>?/gm, '');
发布于 2011-12-26 09:26:00
最简单的方法:
jQuery(html).text();
它从html字符串中检索所有文本。
发布于 2009-08-06 08:30:22
将HTML转换为纯文本电子邮件,保持超链接( href)不变
上面的函数由hypoxide发布的工作很好,但我追求的是,基本上可以转换在网页RichText编辑器(例如FCKEditor)中创建的超文本标记语言,并清除所有的超文本标记语言,但留下所有的链接,因为我想要的超文本标记语言和纯文本版本,以帮助创建一个正确的部分到一个STMP电子邮件(超文本和纯文本)。
在谷歌上搜索了很长一段时间后,我和我的同事们想出了一个在Javascript中使用regex引擎的方法:
str='this string has <i>html</i> code i want to <b>remove</b><br>Link Number 1 -><a href="http://www.bbc.co.uk">BBC</a> Link Number 1<br><p>Now back to normal text and stuff</p>
';
str=str.replace(/<br>/gi, "\n");
str=str.replace(/<p.*>/gi, "\n");
str=str.replace(/<a.*href="(.*?)".*>(.*?)<\/a>/gi, " $2 (Link->$1) ");
str=str.replace(/<(?:.|\s)*?>/g, "");
str
变量的开头如下:
this string has <i>html</i> code i want to <b>remove</b><br>Link Number 1 -><a href="http://www.bbc.co.uk">BBC</a> Link Number 1<br><p>Now back to normal text and stuff</p>
然后在代码运行之后,它看起来是这样的:
this string has html code i want to remove
Link Number 1 -> BBC (Link->http://www.bbc.co.uk) Link Number 1
Now back to normal text and stuff
正如你所看到的,所有的HTML都被移除了,链接被保留了,超链接的文本仍然完好无损。此外,我还将<p>
和<br>
标记替换为\n
(换行符),以便保留某种可视格式。
要更改链接格式(例如,BBC (Link->http://www.bbc.co.uk)
)只需编辑$2 (Link->$1)
,其中$1
是href URL/URI,$2
是超链接文本。由于链接直接位于纯文本正文中,因此大多数SMTP邮件客户端都会转换这些链接,以便用户能够单击它们。
希望这篇文章对你有用。
https://stackoverflow.com/questions/822452
复制相似问题