千家信息网

JavaScript中正则语法的嵌套替换

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍"JavaScript中正则语法的嵌套替换",在日常操作中,相信很多人在JavaScript中正则语法的嵌套替换问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
千家信息网最后更新 2026年11月02日JavaScript中正则语法的嵌套替换

这篇文章主要介绍"JavaScript中正则语法的嵌套替换",在日常操作中,相信很多人在JavaScript中正则语法的嵌套替换问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"JavaScript中正则语法的嵌套替换"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

复制代码 代码如下:







中

...
之间的

都替换为
?
思考
该问题的难点之一在于JavaScript支持的正则特性实在有限。楼主已经想到了非JavaScript的解法,如下:

复制代码 代码如下:


re=/(?<=)(?=.*?<\/table>)/gi;
alert (sourcestr.replace(re,"
"));


嗯,思路大致是这样。较真起来,即使JavaScript支持逆序环视,上面答案并不能够如愿运行。原因是带有量词的逆序环视(即在(?<=)里面使用?, *, +, {}这样的量词)是更高级的的语法,极少有语言能够支持(特例是.Net)。

但是,像楼主这样的正则问题应该是很普便的一个问题,我们经常需要循环地替换一些内容。该如何解答呢?

思路一

阅读JavaScript的文档,我找到了lastIndex这样的东东。根据这个东东,我形成了这样的思路:
•先按外层循环,找到第一组较大的匹配。正则代码是]*>[\s\S]*?<\/table>
•定位到这次匹配结束的起始位置,替换掉这一段字串中所有的

。
•循环执行。
我觉得上述思路大致清晰,但是细节太多(每次匹配涉及3个位置点,一个长度),解起来并非从容不迫,最终的代码想必也不会赏心悦目;尤为重要的是,整个思路像是原始的 Crack,而不是高手的 Hack 。而且思路与正则关系不大。我决定换一条路。

思路二

关键是循环和嵌套。还好不是盗梦空间的深层递归。能否将匹配的内容保护起来,替换完之后再放回原位呢?

想到这里,就豁然开朗了。

思路:先找到所有的匹配内容,记路在数组inner中;

同时使用该正则,将原字串split为另一个数组wrapper;

一个重要的特点是,wrapper一定比inner多一个元素,它一一将inner项隔开,并处于最外层。wrapper 和 inner 的关系,就像是一个手掌的5根指头与4个指缝的关系。将中间的元素取出,记下位置,等处理完之后,再将所有的元素粘合在一起。就是这样简单。代码如下(为了让问题更有普使性,我稍改了一下源字串):

复制代码 代码如下:




贴图:


更新

果然是能人辈出,评论更精彩!请看评论中的这则代码:

复制代码 代码如下:

alert(sourcestr.replace(//ig, function($1){return $1.replace(/

/ig,"
")}));

到此,关于"JavaScript中正则语法的嵌套替换"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

代码 正则 思路 语法 问题 学习 循环 元素 内容 支持 重要 位置 外层 数组 更多 楼主 逆序 量词 帮助 解答 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州为想互联网科技有限公司 互联网是第几次科技革命的成果 科技金融是不是互联网金融 互联网 科技 广州互联网科技公司 远信互联网科技 长亮科技 互联网金融 互联网科技汛 新华互联网科技校企合作 海南科技产业互联网平台 成都玖崟互联网科技有限公司乐商圈怎么样 宁波青枫互联网科技有限公司 互联网还是高科技吗 互联网科技研发水平 健康食品互联网创新科技园项目 民营互联网公司国防科技 华夏恒生互联网科技013171 中和天地互联网科技有限公司 山东有哪些互联网科技公司 数字互联网科技有限公司 高科技互联网 互联网科技公司的优势 猫创互联网科技 互联网科技汛 湖南洣水互联网科技有限公司扣款 银川新华互联网科技学校联系电话 伍佰万互联网科技怎么赚钱 昆明中奇联合互联网科技 华人运通互联网科技公司 互联网 科技节活动 微视频大赛
0