js 正则表达式

var tp = function(str, data) {	
    var str = fast.id(str) ? fast.html(str) : str;
	str = str.replace(/<\#(\s|\S)*?\#>/g, function(p) {return p.replace(/("|\\)/g, "\\$1").replace("<#", '_s.push("').replace("#>", '");').replace(/<\%([\s\S]*?)\%>/g, '",$1,"')}).replace(/\r|\n/g, ""), keys = [], values = [], i;
    for (i in data) {
        keys.push(i);
        values.push(data[i]);
    }
	alert(str);
    return (new Function(keys, "var _s=[];" + str + " return _s;") ).apply(null, values).join("");
};


上面这段程序, 看了n久, 没有明白, 后来才发现这个是js里面正则表达式的一种写法。这个时候才发现自己对js的正则表达式认识程度还仅仅停留在初步的基础上。

重新认识的时刻到了, 不然连程序也看不懂了(~~~, 可是好像看懂了也没有什么用, 呵呵~~~)。

好吧, 不多说了, 还是上点具体的吧, 上面这段程序先留在这里, 先来个简单些的,  再上一顿代码。 


function toCamelCase(source) {
    if (source.indexOf('-') < 0 && source.indexOf('_') < 0) {
        return source;
    }
    return source.replace(/[-_][^-_]/g, function (match) {
        return match.charAt(1).toUpperCase();
    });
};

顺带学习下js的脚本, source传入后, 先判断是否含有- , _  如果没有则返回输入的字符串

如果有的话, 则替换, 替换这个地方简单的用了一个看上去很简单的函数一样的内容作为一个参数,

match作为一个传入的函数, 就可以实现类似与循环的做法, 里面没有看到循环的语句, 但是每个

被匹配的到字符(- , _ ) 都会被自动替换成匹配到的字符的后面一个字符, 并且自动回转成一个大写格式。

如果没有用正则表达式的话, 是不是写起来要非常的麻烦@#@!@#!@~~~。

这个场景下,这种使用情况非常的方便, 模版情况下使用很有用很有用


今天就先到这里, 未完待续~~~





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值