老师问下正则表达的问题

老师问下正则表达的问题

问题1:

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

问题2:

setCls( element,baseCls.split(cls).join(' ').replace(/\s+/g,' ') );

老师问下我的理解正确吗:正则表达式的“\S”意思是匹配任何非空白字符   “\S”前面加了“/”是转义符在HTMl里面需要加转义符才能识别这个空白,这里即“/\S”。 在然后“+”的意思是匹配一个以上的空白符,那么“+”后面的这个“/”是什么意思啊?最后的“g”意思为匹配一个以上的空白符?我的理解正确吗?

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

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

3回答
好帮手慕码 2020-02-13 16:45:54

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

(1)/\s+/g :表示全局匹配任意个空白字符

(2)是的,格式是:/正则表达/

(3)g是正则的修饰符

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

在第二阶段会讲到正则:

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

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

好帮手慕码 2020-02-13 09:47:29

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

(1)布局问题:

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

(2)前面理解的正确。后面理解的是有问题的, \s没有被转义,而//是replace方法的格式:

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

g表示全局匹配。

(3)setCls( element,baseCls.split(cls).join(' ').replace(/\s+/g,' ') ); 代码的理解:

setCls函数是为元素设置样式的,

element 表示为要删除样式的元素

cls 表示指定删除的类名

baseCls 是获取当前元素element的所有class类名

split() 是将字符串分割成数组,如果传递参数表示从指定的参数位置开始将字符串分割成数组。利用这种特性, 删除元素的样式, 例:下面的例子分割成数组后,数组中没有c这个元素了

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

join() 将数组拼接成字符串,这里传入空格, 表示使用空格拼接字符串

replace(param1, param2) 字符替换方法, 接收两个参数, 第一个参数可以使用正则表达式匹配要被替换的字符, 第二个参数表示准备替换的字符串

/\s+/g 表示全局匹配任意个空白字符,

所以baseCls.split(cls).join(' ').replace(/\s+/g,' ')这句代码就是, 将元素本来拥有的所有class类名通过split()方法把需要删除的样式删除了,得到一个新的数组, 然后再通过join()方法将数组拼接成字符串,最后替换字符串中多余的空白字符。达到实现删除指定类名的方法。

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

  • 提问者 陈立天 #1
    能否拆分解释一下这个“/\s+/g”?? 老师前边说到 主要看格式,正则是需要被“//”围起来也就是“/正则表达/”是这个意思?主要看格式的意思是说 在replace当中需要用“//”把正则包裹起来? 那加一个g 这个g表示全局的意思?他是属于正则表达里面的内容吗 我在w3c上面没有查询到关于g这类的解释?
    2020-02-13 12:13:18
提问者 陈立天 2020-02-12 22:57:15

在补充一下,我这里不是很理解这段代码如何起到删除的作用的?能不能把这段代码每个步骤给我讲解一下?

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

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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