js 正则

jianshao810 2009-12-30 11:07:54
keyword = '电视 电 视频 tv'
str =‘电视电视片tvtv 电视视频’

我将keyword 里分成 “电视”,“电”,“视频”,“tv”
然后匹配str 里的内容
将匹配到的就显示红色


我能用keyword 做一个正则表达式吗?
...全文
73 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
jianshao810 2009-12-30
  • 打赏
  • 举报
回复
都是高手。。
我要强攻正则。。非常感谢
jianshao810 2009-12-30
  • 打赏
  • 举报
回复
我怎样将/ 替换为空格?
浪尖赏花 2009-12-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jianshao810 的回复:]
我想问下
keyword = keyword.replace(/( +)/g,"|");
这句有什么作用的。。
如果我想用 空格 或者 /这个要怎样写?
[/Quote]
作用:将空格分隔符号用|替代
如果我想用 空格 或者 /
修改为:
keyword = keyword.replace(/([ |\/]+)/g,"|");
jianshao810 2009-12-30
  • 打赏
  • 举报
回复
我想问下
keyword = keyword.replace(/( +)/g,"|");
这句有什么作用的。。
如果我想用 空格 或者 /这个要怎样写?
wcwtitxu 2009-12-30
  • 打赏
  • 举报
回复

RegExp.escape = function(str) {
return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
};

Array.prototype.map = function(trans) {
var result = [];
for (var i=0; i<this.length; i++)
result.push(trans(this[i], i, this));
return result;
};

var keyword = '电视 电 视频 tv';

var regex = new RegExp("(?:"+(keyword||'').match(/\S+/g).map(RegExp.escape).join("|")+")(?![^<]*>)", "ig");


html = html.replace(regex, '<span style="color:red">$&</span>');

jianshao810 2009-12-30
  • 打赏
  • 举报
回复
谢谢。。我看看
浪尖赏花 2009-12-30
  • 打赏
  • 举报
回复
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>test</title>
</head>

<body>
电视电视片tvtv 电视视频
</body>
<script>
var content = document.body.innerHTML;
var keyword = '电视 电 视频 tv';
keyword = keyword.replace(/( +)/g,"|");
content = content.replace(eval("/("+keyword+")/g"),"<font color=red>$1</font>");
document.body.innerHTML = content;
</script>
</html>
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2009-12-30 11:07
社区公告
暂无公告