javascript - 正则表达式:如何在忽略 HTML 标签的情况下获取 HTML 字符串中的最后一个单词?
问题描述
我在 Javascript 中有以下代码:
html.replace(/(\S+)\s*$/, '<span class="highlight-word">$1</span>');
我想突出显示 HTML 字符串中的最后一个单词;但是,如果最后有一个 HTML 标记,该标记将用“highlight-word”跨度包装。
例如:
This is a test <br> <b> hello there </b>
会变成:
This is a test <br> <b> hello there <span class="highlight-word"></b></span>
我怎样才能更正上面的正则表达式,这样结果会是这样的:
This is a test <br> <b> hello <span class="highlight-word">there</span> </b>
解决方案
简单而优雅的解决方案是用以下模式替换您的 RegEx 并向前看。
(\w*)(?=\W*\<\/.*\>$)
此模式仅匹配任何标签关闭之前的最后一个单词。
推荐阅读
- java - 捆绑 PlayStore 应用程序后,集成 SDK 的行为有所不同
- javascript - 根据滑块位置移动标记?
- c# - 如何在 C# 中从 clipboard.gettext 定义计时器间隔
- android - Android reCaptcha 强制纵向定向
- python-3.x - 如何从boto3获取对象(文件)到期日期
- elasticsearch - 跨多个字段的弹性搜索查询具有模糊性的术语
- laravel - 在 VueJS PUT 请求上获得 403 Forbidden
- python - 如何获得数据帧字典中由 datetime 索引的列的平均值?
- javascript - 运行swagger项目时出现节点js错误
- android - 重命名 react native app,Activity 类 MainActivity 不存在