JavaScript正则表达式如何匹配字符串字面量的方法
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要讲解了"JavaScript正则表达式如何匹配字符串字面量的方法",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"JavaScript正则表达
千家信息网最后更新 2026年10月31日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安全错误
数据库的锁怎样保障安全
中国互联网科技股
盈实互联网科技
深圳科技互联网
高科技与互联网
美国互联网科技
互联网科技作文
未来的互联网科技
融势互联网科技
润盈互联网科技
亿人帮互联网科技
互联网科技类展会
济南华为互联网科技产业总部基地
互联网经济与金融科技
互联网还是高科技吗
崇明区互联网教育科技售后服务
恒生互联网科技指数跳水
华夏恒生科技与互联网科技
长沙互联网科技
互联网科技包装股份有限公司上市
青岛互联网科技园
成都互联网科技公司
华中科技大学互联网
太原新华互联网科技学校怎么样
天津腾达互联网科技有限公司
烟台灵鸽互联网科技有限公司
互联网科技快讯热点
下一代互联网重大应用科技园
35岁以上互联网科技行业
优雇互联网科技有限公司
宁波允成互联网科技有限公司