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安全错误
数据库的锁怎样保障安全
软件开发服务维保服务
联合国商品贸易数据库两岸
武汉市租房网络安全
美国高仿云服务器不用实名
网络技术安全网站
网络技术促销方案
数据库数据与记录之间
阿里巴巴的数据库产品
兰德网络安全报告
淘宝 文件管理支持服务器
异构服务器定位和应用场景有哪些
软件开发投标文件制作
计算机网络技术的专业认知
服务器建立不死账号
我的世界服务器主城设置
苏大计科数据库期中
mysql数据库接口系统
创新驱动网络安全
小沈阳唱歌软件开发
计算机网络技术上机实验报告
上海异步网络技术有限公司
我国网络安全最主要法律
处理网络安全的难点与把握
软件开发动手能力
限飞数据库更新大疆
流媒体服务器 实现
ava软件开发难学吗
服务器的设置 配置和管理
软件开发需求调查问卷
网络安全教育保障