JavaScript正则表达式如何匹配字符串字面量的方法
发表于:2024-11-18 作者:千家信息网编辑
千家信息网最后更新 2024年11月18日,这篇文章主要讲解了"JavaScript正则表达式如何匹配字符串字面量的方法",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"JavaScript正则表达
千家信息网最后更新 2024年11月18日JavaScript正则表达式如何匹配字符串字面量的方法
这篇文章主要讲解了"JavaScript正则表达式如何匹配字符串字面量的方法",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"JavaScript正则表达式如何匹配字符串字面量的方法"吧!
第一次遇到这个问题, 是大概两年前写代码高亮, 从当时的解决方案到现在一共有三代, 嘎嘎. 觉得还是算越来越好的.
第一代:
//那个时候自己正则还不算很精通, 也没有(?:...)这种习惯, 是以寻找结束引号为入口写出的这个正则. 思路混乱, 也存在错误.//比如像字面量 "abc\\\"", 则会匹配为 "abc\\\", 而正确的结果应该是 "abc\\\"".var re = /('('|.*?([^\\]'|\\\\'))|"("|.*?([^\\]"|\\\\")))/g;
第二代:
//这个匹配其实和第一代思路基本相同, 也是寻找结束引号, 通过给\\添加*解决了第一代的bug.var re = /(['"])(?:.*?[^\\](?:\\\\)*)?\1/g;
第三代:
//老实说第三代是昨天晚上出题的时候突然想出来的(后来又修改过), 支持多行字符串字面量, 思路也有了较大的转变, 从匹配结束引号变味了匹配中间内容.var re = /(['"])(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*?\1/g
这里有一个正则里非常常用的技巧, 姑且称之为 "抢占", 在诸如/a|./这样的正则里, 越靠前越先匹配, 通过 "抢占" 一些字符, 可以避开很多麻烦. 说起来有些抽象, 在上面这个例子里, /\\[\s\S]/就可以很自然地抢到 \" 这样的转义字符, 所以不必担心转义字符中的 " 给匹配造成影响. 这是局部的 "抢占", 还有更大范围的, 比如注释里的字符串或者字符串里的注释, 只要在同一个正则中, 把相关匹配都写入, 则一定是先遇到的优先. 如 /(注释正则)|(字符串正则)/g, 可以先通过这样的方式, 把内容匹配出来, 再进行进一步判断处理.
虽然可能对于多数人来说, 用处不大, 但万一呢? Best wishes~
感谢各位的阅读,以上就是"JavaScript正则表达式如何匹配字符串字面量的方法"的内容了,经过本文的学习后,相信大家对JavaScript正则表达式如何匹配字符串字面量的方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
字符
正则
字符串
字面
方法
表达式
内容
思路
一代
引号
注释
三代
学习
时候
转义
问题
相同
较大
混乱
老实
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
海南网络安全招聘启示
物业管理系统数据库
本科国贸研究生考网络安全
impa服务器有哪些
数据库技术目前国外差距论文
农业应用软件开发的意义
广州市全天候互联网科技有限公司
怀旧服哪里有服务器掉线
恩平广东互联网科技有限公司
内蒙古广播网络安全信息
网吧电脑连不上服务器怎么回事
饥荒为什么要租服务器
网络安全的优质基金有哪些
把电脑通过ipv4做成服务器
高校评教系统数据库
铁路网络安全相关案例
网络安全央企上市公司
同一服务器两个猎人宝宝通用吗
中国纺织全文数据库
远光数据库安装失败
国家网络安全监管照片
2021云服务器出货量
java软件开发难不难学
内网服务器端口在哪里
求职招聘软件开发多少钱
三级等保网络安全设计方案
软件开发的费用预测
电脑需要搭配服务器吗
通勤人员数据库如何申请
木春网络技术服务部