老师,你好,请教一下。

老师,你好,请教一下。

str1="jshtml";
    document.write(/html|css/.exec(str1));
    
str2="jshtml";
document.write(/html|css|js/.exec(str2));

前者输出html,后者输出js

后者不是先从html这个表达式开始比较str2中的字符串jshtml吗?那他为什么不像前者输出html呢,不是匹配到
字符串jshtml中的html了吗?


正在回答 回答被采纳积分+1

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

2回答
我学习太差被关起来了 2019-12-24 16:27:23
str2="jshtml";
document.write(/html|css|js/.exec(str2));


老哥,你的理解错了。

我们说的匹配,是用正则表达式去匹配字符串,方向是从左到右。

在上面的代码中,字符串是"jshtml",正则表达式是/html|css|js/。

从左到右的顺序,指的是字符串的顺序,因此先是"js",后是"html"。而不是正则表达式的顺序(html、css、js)。

Miss路 2019-06-14 18:10:13

同学,你好。你的例子和课程中老师讲的不一样,老师讲的例子,字符串中html是在前面的,你的是js在前面,所以会第二个会输出js,如果第二个你这么写的话,就是匹配html:

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

如果帮助到了你,还有采纳!

祝学习愉快!

  • 提问者 慕哥4409719 #1
    老师,你没看明白我的问题,我就想问如果是js在前面的呢?
    2019-06-14 18:14:54
  • 提问者 慕哥4409719 #2
    不好意思,没帮到,无法采纳。
    2019-06-14 18:15:59
  • Miss路 回复 提问者 慕哥4409719 #3
    同学,你好。没有解决你的问题,可以继续提问。 js在前面,就是你现在写的代码运行后的结果。 前者能匹配到html,是因为str1中没有css,所以只能匹配html。 第二个输出,虽然正则表达式会从html开始找,但是因为js在前面,所以会先匹配到js。 你是想问这个吗?如果不是的话,请说明你的明确的需求。 祝学习愉快!
    2019-06-14 18:37:53
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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