/<(?:[^"'>]|(["'])[^"']*\1)*>/g;
之前的提问:https://class.imooc.com/course/qadetail/184149
可是没看懂
具体问题:为什么讲["']进行分组,就能弥补漏洞:[^"']排除了所有的单引号和双引号,而双引号里可以有单引号,单引号里可以有双引号
57
收起
正在回答
1回答
同学你好,对于你的问题解答如下: js中字符串嵌套只有两种情况:
双引号中嵌套单引号:
单引号中嵌套双引号:
如果多层嵌套不符合代码规范
因为str的开始和结束的单引号(或双引号)只表示字符串,不参与正则匹配,真正的匹配是从内容(<input...)开始匹配的,匹配的的内容中不会出现单双引号嵌套(不符合语法)的情况,所以同学考虑的事情不会发生。
\1表示使用第一个分组,那么(["'])[^"']*\1这种写法等同于(["'])[^"']*(["']),表示匹配引号之间的内容。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星