今儿遇到一个后端抛过来的需求,给项目中所有的权限码做修改,将原有权限码中的所有冒号替换成下划线 。
例如,原本的权限码类似这样:
- m_xtgl
- m_xtgl:yhzgl
- f_xtgl:yhzgl:query
- m_ztgz
- m_ztgz:ywdxztgz
- m_ztgz:ywdxztgz:gjhz
- f_ztgz:ywdxztgz:gjhz:weekwarn
- ...
可以看出这些权限码的命令规则,有一个固定的前缀再通过冒号加上后续菜单名,菜单名是纯小写的英文,需要做的就是把这些连接的冒号改成下划线。
菜单名的匹配最好不要用 /.*/
纯小写英文的匹配使用 /[a-z]*/
这里使用的是正则校验工具是: regex101.com/
因为项目比较大,涉及到需要修改的权限码特别多,如果是一个个粘贴复制修改的话工作量巨大,即使是批量修改的也因为子菜单分类太多导致工作量很大。
没错,这会非常非常费时间,我很排斥机械的无脑的做这样重复的替换工作。
一个超简单的办法,使用正则表达式,大大提高工作效率,原本需要两天工作量的任务,现在只需要两小时就可以搞定。
开启正则搜索,
例如搜索 m_xtgl,实际项目中搜索出来的结果更多,
使用正则匹配,括号抱起来的部分,使用 $ 替换,
替换完第 1 个 冒号,修改成下划线搜索再替换下面的,
一直匹配到搜索不出来为止,说明该前缀下所有权限码已全部修改完成,
这样就高效的完成了该无脑需求,特别感谢群里的大佬,节省了我大量的时间。
有佬的感觉真好~
注:本文首发微信公众号【前端一起学】,里面有持续更新的Vue源码实战专栏,Electron实战,Three.js入门教程等,还有更多前端基础知识超详细总结,欢迎关注。