Javascript-Regex规则,在span标记中找不到XX
Javascript - Regex rule, find XX but not in span tag
文本
message = 'Hello, my name ist Peter!';
我的标签
tags = {};
tags.tagsOne = {};
tags.tagsOne['t1'] = 'hello|is|there|g';
tags.tagsOne['t2'] = 'bub';
tags.tagsOne['t3'] = 'dog|house';
tags.tagsTwo = {};
tags.tagsTwo['t1'] = 'blub|man';
tags.tagsTwo['t2'] = 'word';
tags.tagsTwo['t3'] = 'sorry|high';
Regex
regexT1 = new RegExp('('+tags.tagsOne['t1']+'|'tags.tagsTwo['t1']+')','gi');
regexT2 = new RegExp('('+tags.tagsOne['t2']+'|'tags.tagsTwo['t2']+')','gi');
regexT3 = new RegExp('('+tags.tagsOne['t3']+'|'tags.tagsTwo['t3']+')','gi');
更换
message = message.replace(regexT1,'<span class="highlightT1">$1</span>');
message = message.replace(regexT2,'<span class="highlightT2">$1</span>');
message = message.replace(regexT3,'<span class="highlightT3">$1</span>');
他也找到并替换了<span class="highlightT1">$1</span>
在regex中有可能说,但不是这个-><span class="highlightT1">$1</span>
吗
示例
->http://jsfiddle.net/tVmTe/3/
更新:
工作示例->http://jsfiddle.net/tVmTe/9/
在空格中拆分消息,并单独考虑每个单词。
var words = message.split(' '),
var i = 0;
for(i; i < words.length; ++i){
if(regexT1.test(words[i])){
words[i] = words[i].replace(regexT1,'<span class="highlightT1">$1</span>');
continue;
}
//...
}
message = words.join(' ');
相关文章:
- 气质的“nestRemoting()”有时可以'找不到关系
- 错误405:向Java控制器(Ajax)发送JSON时找不到POST方法
- 找不到模块捆绑包
- for循环中的javascript if语句找不到==
- 为什么JavaScript可以'找不到给定的InnerHTML并返回Cannot set property
- 失败:等待Protractor与页面同步时出错:“”;在窗口上找不到角度”;
- Babel编译错误:找不到模块核心js/library/fn/get迭代器
- [Vue warn]:找不到元素
- ngRoute找不到模板
- 未能加载,因为找不到支持的源.当播放HTML5音频元素时
- 因果报应-找不到模块:错误:无法解析模块'scs'
- Angular 2:在本地.json文件上找不到文件
- module.js在运行iron节点时找不到模块
- 放大弹出生成“;找不到文件”;YouTube视频的错误
- 我发现了一些只在移动设备上可见的垃圾邮件链接,我可以'找不到包含此垃圾邮件链接的脚本的位置
- Web 地址虚拟目录会断开外部 JavaScript 链接,因此找不到文件
- Meteor.js可以'找不到语义:ui包
- 找不到容器:goog.Disposable.instances _在为javascript工具使用泄漏查找器时出错
- 错误:找不到模块'/lib/cli'
- Javascript-Regex规则,在span标记中找不到XX