提问...

提问...

http://img1.sycdn.imooc.com//climg/5f2803910862313e10000563.jpg
老师 第83行和87行还是不太明白

正在回答

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

2回答

同学你好,针对你的问题解答如下:

  1. 83行的代码匹配引号外面的内容以及匹配引号里面的内容,引号可以是单引号或者双引号。

    可以拆分来看,具体参考如下解析理解

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

    (1)首先是最外层左右的<>:

    (2)[^"']中的^是取反,即不匹配双引号或者单引号,这样就可以匹配引号外面的内容

    (3)“[^"]*”这是匹配双引号里面的内容,在双引号内容中不匹配双引号,否则就结束了,内容可以有多个,用*,意思是匹配前面的子表达式零次或多次, 等价于{0,}。

    (4)'[^']*'这是匹配单引号里面的内容,在单引号内容中不匹配单引号,否则结束了,内容可以有多个,用*。

    注:上面(2),(3),(4)是或的情况,因为不知道标签中是怎么写的,可能只有一个标签,也可能有属性,属性值可能用双引号或者单引号。

    (5)将这三种情况分组,但是不用捕获输出,最后用*,可以多次匹配内容。

  2. 87行代码与83行代码的作用是一样的,87行相当于是对83行代码的简化写法。

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

同学可以回顾下视频讲解,结合源码测试,根据代码实现效果,帮助自己更好的理解。祝学习愉快~

  • 青旗 提问者 #1
    (2)[^"']中的^是取反,即不匹配双引号或者单引号,这样就可以匹配引号外面的内容 老师,原文里是这个[^"'>] 我试了一下 感觉加不加这个>没有影响 视频里说要加这个是为什么
    2020-08-05 00:15:57
好帮手慕慕子 2020-08-05 09:43:04

同学你好, 因为一开始的<input type=表示双引号之外的内容,可以被[^"'>]匹配到,也可以被[^"']匹配到,所以这里加不加>都是一样的,但是加上>会让代码更加严谨。

祝学习愉快~



问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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