Javascript 中带有 HTML 标签的子字符串文本
你有在 Javascript 中使用 HTML 标签对文本进行子字符串处理的解决方案吗?
例如:
var str = 'Lorem ipsum <a href="#">dolor <strong>sit</strong> amet</a>, consectetur adipiscing elit.'
html_substr(str, 20)
// return Lorem ipsum <a href="#">dolor <strong>si</strong></a>
html_substr(str, 30)
// return Lorem ipsum <a href="#">dolor <strong>sit</strong> amet</a>, co
Do you have solution to substring text with HTML tags in Javascript?
For example:
var str = 'Lorem ipsum <a href="#">dolor <strong>sit</strong> amet</a>, consectetur adipiscing elit.'
html_substr(str, 20)
// return Lorem ipsum <a href="#">dolor <strong>si</strong></a>
html_substr(str, 30)
// return Lorem ipsum <a href="#">dolor <strong>sit</strong> amet</a>, co
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
考虑到用正则表达式解析html是一个坏主意,这里有一个解决方案可以做到这一点:)
编辑:需要明确的是:这不是一个有效的解决方案,它是一个对输入字符串做出非常宽松的假设的练习,因此应该与一粒盐一起服用。阅读上面的链接,看看为什么永远无法使用正则表达式解析 html。
示例: http://jsfiddle.net/danmana/5mNNU/
注意:patrick dw 的解决方案 对于不良 html 可能更安全,但我不确定它处理空格的效果如何。
Taking into consideration that parsing html with regex is a bad idea, here is a solution that does just that :)
EDIT: Just to be clear: This is not a valid solution, it was meant as an exercise that made very lenient assumptions about the input string, and as such should be taken with a grain of salt. Read the link above and see why parsing html with regex can never be done.
Example: http://jsfiddle.net/danmana/5mNNU/
Note: patrick dw's solution may be safer regarding bad html, but I'm not sure how well it handles white spaces.
用法:
示例: http://jsfiddle.net/2ULbK/4/
功能:
Usage:
Example: http://jsfiddle.net/2ULbK/4/
Function:
这是单个标签的解决方案
it is solution for single tags
使用上面给定的正则表达式提取纯文本,然后使用基于 JS String 的“.substr()”函数获得所需的结果
Extract plain text with above given regular expression then use JS String based ".substr()" function for desired results
使用类似于
= str.replace(/<[^>]*>?/gi, '').substr(0, 20);
我在以下位置创建了一个示例: http://fiddle.jshell.net/xpW9j/1/
Use something similar to
= str.replace(/<[^>]*>?/gi, '').substr(0, 20);
I've created an example at: http://fiddle.jshell.net/xpW9j/1/
Javascript有一个子字符串方法。如果字符串包含 html 则没有区别。
请参阅http://www.w3schools.com/jsref/jsref_substr.asp
Javascript has a sub-string method. It makes no difference if the string contains html.
see http://www.w3schools.com/jsref/jsref_substr.asp