日期:2014-05-16  浏览次数:20462 次

通过正则表达式使用string.replace替换字符串
看到淘宝UED资料上有个实例,使用模板拼接字符串,json格式的数据如下:
JScript code

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


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

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);


我的问题是正则表达式中的那个句号. 及外面的小括号() 还有后面函数中的$都是什么意思?

------解决方案--------------------
都是正则表达式的原字符,网上搜一下30分钟入门正则看看就知道了
------解决方案--------------------
. 小数点可以匹配除了换行符(\n)以外的任意一个字符

小括号() 表示分组捕获

$ 是取得匹配正则的字符

$1 取得 第一个分组捕获


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



------解决方案--------------------
. 匹配出回车以外的任何字符
() 分组
function($, $1) 中 $ 是匹配模式的字符串,$1 是与第一个子表达式匹配的字符串