通过正则表达式使用string.replace替换字符串

ni_zhi 2012-05-25 04:02:59
看到淘宝UED资料上有个实例,使用模板拼接字符串,json格式的数据如下:

var json = {name: "流火", blog: "ued.t"};

想得到下面的效果:
流火 (blog: ued.taobao.com)
使用模板函数的方法为:

function sub(str, data){
return str.replace(/{(.*?)}/igm, function($, $1){
return data[$1]?data[$1]:$;
});
}
var tpl = '{name} (blog: {blog})';
var html = sub(tpl, json);

我的问题是正则表达式中的那个句号. 及外面的小括号() 还有后面函数中的$都是什么意思?
...全文
119 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
一起混吧 2012-05-25
  • 打赏
  • 举报
回复
. 匹配出回车以外的任何字符
() 分组
function($, $1) 中 $ 是匹配模式的字符串,$1 是与第一个子表达式匹配的字符串
001007009 2012-05-25
  • 打赏
  • 举报
回复
. 小数点可以匹配除了换行符(\n)以外的任意一个字符

小括号() 表示分组捕获

$ 是取得匹配正则的字符

$1 取得 第一个分组捕获


楼主搜下 30分钟正则入门,看看先。。


newxdlysk 2012-05-25
  • 打赏
  • 举报
回复
都是正则表达式的原字符,网上搜一下30分钟入门正则看看就知道了

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧