为了账号安全,请及时绑定邮箱和手机立即绑定

js 正向预查的正则 匹配不上?

js 正向预查的正则 匹配不上?

青春有我 2018-11-29 22:17:10
目的:去除大括号右边的空格。下面的可以://第一个var a = "我是空格 {我是参数} 我前面 {我是参数} 有空格 我前面的空格不匹配";hand_trim1(a);function hand_trim1(str){return str.replace(/(?:\})\s+/g,'}');}//第二个var a = "我是空格 {我是参数} 我前面 {我是参数} 有空格 我前面的空格不匹配";hand_trim2(a);function hand_trim2(str){return str.replace(/}\s+/g,'}');}//第三个(这个为什么就是匹配不上呢????????)var a = "我是空格 {我是参数} 我前面 {我是参数} 有空格 我前面的空格不匹配";hand_trim3(a);function hand_trim3(str){return str.replace(/(?=\})\s+/g,'');}
查看完整描述

1 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

正向预查是零宽,意思就是宽度是0,只是匹配一个位置,只要这个位置满足就可以,并不匹配具体的内容;
(?=\})匹配的位置应该是在这个位置后面有一个}
\s+表示从这个位置起,后面跟着空白符;
所以,满足上面两个条件的位置是这个位置后面的字符即是},又是空白符,因此,这种位置根本不存在,所以不匹配;
其实这个位置应该是左边是一个},右边是\s+,但是js没有负向断言,无法预测左侧的字符类型。

查看完整回答
反对 回复 2018-12-23
  • 1 回答
  • 0 关注
  • 437 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信