正则表达式记录1
2015-10-02 23:20
274 查看
使用场景1
如果http请求的路由,开头是login或者WeChat或者是register,默认有access权限,否则没有session情况下,要跳转到login页面:
原本我们可能用如下,一个个都用indexOf去判断,但是这样如果以后越来越多不需要登录就可以进去,就会越加月多,代码很长不美观:
此时,我们可以考虑使用优雅的正则表达式:
这里gi是全局并且忽略大小写。
使用场景2
A.如果有一串日期时间字符串,format:yyyyMMddhhmmss, 例如20151002231311,要格式化为2015-10-02 22:13:11
这时候也可以使用正则的分组方式:
B.同样日期格式 ,format:MM/dd/yyyy, 例如10/02/2015,要格式化为2015-10-02,则用如下分组:
如果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"));
相关文章推荐
- noip2012 开车旅行 (倍增处理)
- 远程桌面无法复制粘贴
- 9.Python进阶_动态类型
- USACO 2.3 Zero Sum
- DirectX11 漫反射光
- java开发中JDBC连接数据库代码和步骤
- 苹果发布密码漏洞修复补丁- OS X El Capitan
- bzoj4198【noi2015】荷马史诗
- Android NDK 环境配置
- 坦克大战1--》java绘图机制
- 8.Python进阶_异常处理
- 输入法不能使用ctrl+shift进行切换的问题
- Brunhilda的生日(brunhilda)
- wamp环境下安装memcached最好的详解教程^.^:(只需要3个步骤 )
- 项目26.3 本月有几天?
- c++ primer 练习5.19
- 容忍傻B是不道德的
- 经典排序算法总结与实现
- 《C++primer(第五版)》学习之路-第十五章:面向对象程序设计
- 月光博客的微信公众号