正则表达式记录1

使用场景1

如果http请求的路由,开头是login或者WeChat或者是register,默认有access权限,否则没有session情况下,要跳转到login页面:

原本我们可能用如下,一个个都用indexOf去判断,但是这样如果以后越来越多不需要登录就可以进去,就会越加月多,代码很长不美观:

if (req.session.user || req.path.indexOf("/login") === 0 || req.path.indexOf("/wechat") === 0 || req.path.indexOf("/register") === 0) {
        next();
    } else {
        res.redirect('/login');
    }

此时,我们可以考虑使用优雅的正则表达式:

var patt = /^(\/login|\/wechat|\/register)/gi; 
if (req.session.user || patt.test(req.path)) {
        next();
    } else {
        res.redirect('/login');
    }

这里gi是全局并且忽略大小写。

 

使用场景2

A.如果有一串日期时间字符串,format:yyyyMMddhhmmss, 例如20151002231311,要格式化为2015-10-02 22:13:11

这时候也可以使用正则的分组方式:

console.log("20151002231311".replace(/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/, "$1-$2-$3 $4:$5:$6"));

B.同样日期格式 ,format:MM/dd/yyyy, 例如10/02/2015,要格式化为2015-10-02,则用如下分组:

console.log("10/02/2015".replace(/(\d{2})[/](\d{2})[/](\d{4})/, "$3-$1-$2"));

 

posted @ 2015-10-02 23:20  lzone6  阅读(435)  评论(0编辑  收藏  举报