Zweck: Entfernen Sie die Leerzeichen rechts von den geschweiften Klammern.
Folgendes kann verwendet werden:
//Die erste
var a = „Ich bin ein Leerzeichen {Ich bin ein Parameter}. Es gibt Leerzeichen vor mir {Ich bin ein Parameter}. Die Leerzeichen vor mir tun dies nicht match";
hand_trim1(a);
function hand_trim1 (str){
return str.replace(/(?:\})\s+/g,'}');
}
//Die zweite
var a = „Ich bin ein Leerzeichen {Ich bin ein Parameter}. Es gibt ein Leerzeichen vor {Ich bin ein Parameter}. Das Leerzeichen vor mir stimmt nicht überein“;
hand_trim2(a);
function hand_trim2(str){
return str.replace(/}\s+/g,'}');
}
//Der Dritte (Warum passt das nicht???????)
var a = „Ich bin ein Leerzeichen {Ich bin ein Parameter} Vor mir ist ein Leerzeichen {Ich bin ein Parameter}" Leerzeichen stimmt nicht überein ";
hand_trim3(a);
function hand_trim3(str){
return str.replace(/(?=\})\s+/g,'');
}
正向预查是零宽,意思就是宽度是0,只是匹配一个位置,只要这个位置满足就可以,并不匹配具体的内容;
(?=\})
匹配的位置应该是在这个位置后面有一个}
;\s+
表示从这个位置起,后面跟着空白符;所以,满足上面两个条件的位置是这个位置后面的字符即是
}
,又是空白符
,因此,这种位置根本不存在,所以不匹配;其实这个位置应该是左边是一个
}
,右边是\s+
,但是js没有负向断言,无法预测左侧的字符类型。