使用场景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"));
时间: 2024-10-11 17:07:36