【问题标题】:Using regexp to match pattern not in img tag使用正则表达式匹配不在 img 标签中的模式
【发布时间】:2015-08-25 13:37:31
【问题描述】:

我想做一个在线聊天应用,它的发送表情符号功能是这样的:

所以我使用 contentEditable 为 true 的 div 作为输入区域。所有的消息都会以这种方式保存在数据库中:

"Hello, Cathy<img src="/public/face/Mazes_Mini_017.png"><img src="/public/face/Mazes_Mini_017.png">"

以上这些都很好,但是当时我想做一个搜索能力,突出我搜索的关键字,我想使用字符串时遇到了问题。 replace 方法将myKeyWord 替换为<span class='highlight'>myKeyWord<span>,但它会匹配 <img> 标记中的某些字符...

例如。 <img src="/public/face/Mazes_Mini_017.png">112233test112233</img>123test123

关键字是测试

预期结果是: 112233test112233123test123

所以我真的很想使用正则表达式来匹配一些字符不在<img>这样的指定标签,我尝试了很多但没有一个成功...

【问题讨论】:

  • 您可以使用negative assertions 仅匹配<img> 标签内not 的关键字。
  • 只是想指出不应该有</img>,你不应该把文字“放在”<img>

标签: javascript jquery html regex


【解决方案1】:

Here is an example

你可以试试这个:(?<!<\/)test(?![^<]*<\/img>)

【讨论】:

  • 但我认为使用test(?![^<]*<\/img>) 就足够了,因为test 永远不会显示为<test> 标签
猜你喜欢
  • 2013-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多