使用JavaScript拆分字符串,但忽略其中的HTML字符
Splitting a string with JavaScript but ignoring the HTML characters in it
我对这个问题已经有一段时间了,我希望有一个解决方案。。
我有一些类似的HTML字符串:
'<a href="link.com">Lorem ipsum</a> dolor sit amet, consectetur adipiscing elit. Ut lobortis luctus leo, non porta nisi euismod ut. <a href="anotherlink.com">Nulla tristique</a> scelerisque fringilla.'
我需要使用JavaScript在一定数量的字符后截断/拆分文本,不计算链接中的HTML,但仍在生成的文本中呈现链接。例如,如果我将其截断为20个字符,那么我希望显示以下内容,但"Lorem ipsum"文本仍然链接:
Lorem ipsum dolor si
如果我只使用str.substring(0,20),那么字符串中的HTML字符也会显示出来,所以我得到:
<a href="link.com">L
它只是呈现为超链接L:
L
有人给我什么建议吗?我试着搜索,但找不到合适的答案。
如果有帮助的话,我可以在JS中使用原始的非HTML文本和完整的HTML文本(带链接)。我不想只使用原始文本,因为它不会呈现任何链接。例如,如果我将文本拆分为200个字符,那么我希望所有链接仍在HTML中呈现,但只向用户显示200个字符的实际屏幕文本。
希望这是有道理的。非常感谢您的帮助!
约翰·
编辑:澄清我正在努力实现的目标;
我有一篇文章(文本字符串),里面有链接。我想计算文本中的字符数,不包括链接中的HTML字符。然后,我想截断文本,使其仍然包含HTML链接,但只向用户显示X个字符。
例如;
'<a href="link.com">Lorem ipsum</a> dolor sit amet, consectetur adipiscing elit. Ut lobortis luctus leo, non porta nisi euismod ut. <a href="anotherlink.com">Nulla tristique</a> scelerisque fringilla.'
当截断到40个字符时,将显示为:
'<a href="link.com">Lorem ipsum</a> dolor sit amet, consectetur adi'
因此,它包括链接,但只向用户显示40个字符的文本。如果我使用str.substring(0,40),那么它会在字符计数中包含链接,并最终显示:
'<a href="link.com">Lorem ipsum</a> dolo'
希望这是有道理的。对造成的混乱深表歉意。
您可以这样使用它:
var s = '<a href="link.com">Lorem ipsum</a> dolor sit amet, consectetur adipiscing elit. Ut lobortis luctus leo, non porta nisi euismod ut. <a href="anotherlink.com">Nulla tristique</a> scelerisque fringilla.'
var div = document.createElement("div");
div.innerHTML = s;
var text = div.textContent || div.innerText;
var substr = text.substring(0, 20);
//=> "Lorem ipsum dolor si"
如果您的字符串结构如您所示是一致的;那么,这可能会起作用:
1.用空格分隔原始字符串2.获取吐出的的第一个(移位)或最后一个(弹出)
var longString="Lorem ipsum dolor sit amet";
shortString=longString.split(").shift();-->//Lorem
- 正在转义javascript数组中的html字符
- AngularJs正在解码HTML字符(不需要)
- 如何在不支持HTML字符的邮件正文中发送%签名
- 如何使用 html 字符解析 javascript 中的字符串
- 转义我的 HTML 字符
- 在某些浏览器中,jquery.html()正在取消转义html字符
- 使用 JQuery 插入 HTML 字符实体
- 使用 Javascript 和正则表达式替换 HTML 字符
- JavaScript 不会转换特殊的 HTML 字符
- 我可以根据换行动态隐藏 html 字符吗?
- 将句点替换为 HTML 字符
- 在谷歌修饰的前元素中保留 html 字符
- 加载 tinyMCE 时的默认 html 字符
- Javascript替换HTML字符
- CKEDITOR getData()返回html字符实体(unicode),但如何获得未翻译的字符
- 如何使用angularjs在CSS伪元素中显示HTML字符实体
- 使用JavaScript拆分字符串,但忽略其中的HTML字符
- jQuery(或JS)解码字符串中的HTML字符实体
- Javascript/jQuery:如何将字符串转换为HTML字符代码
- 转换特殊的HTML字符代码,如"到正常的字符