/<(?:[^"'>]|(["'])[^"']*\1)*>/g;

/<(?:[^"'>]|(["'])[^"']*\1)*>/g;

之前的提问:https://class.imooc.com/course/qadetail/184149

可是没看懂

具体问题:为什么讲["']进行分组,就能弥补漏洞:[^"']排除了所有的单引号和双引号,而双引号里可以有单引号,单引号里可以有双引号

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,对于你的问题解答如下: js中字符串嵌套只有两种情况:

  1. 双引号中嵌套单引号:

    http://img1.sycdn.imooc.com//climg/5e16a193099c9aa907270081.jpg

  2. 单引号中嵌套双引号:

    http://img1.sycdn.imooc.com//climg/5e16a17109d4939a07210035.jpg

  3. 如果多层嵌套不符合代码规范

    http://img1.sycdn.imooc.com//climg/5e16a23a09dc47a107290066.jpg

    http://img1.sycdn.imooc.com//climg/5e16a2480915354018970042.jpg

  4. 因为str的开始和结束的单引号(或双引号)只表示字符串,不参与正则匹配,真正的匹配是从内容(<input...)开始匹配的,匹配的的内容中不会出现单双引号嵌套(不符合语法)的情况,所以同学考虑的事情不会发生。

  5. \1表示使用第一个分组,那么(["'])[^"']*\1这种写法等同于(["'])[^"']*(["']),表示匹配引号之间的内容。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 迷失的小麦 提问者 #1
    老师,还是没想明白
    2020-01-10 09:56:06
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师