javascript - Kann der reguläre Ausdruck der JS-Vorwärtsprüfung nicht übereinstimmen?
代言
代言 2017-06-26 10:56:06
0
1
800

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,'');

}

代言
代言

Antworte allen(1)
仅有的幸福

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

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage