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