以下は、式を確認するコードです。スペースの後、 @ の後、文字列の開始をチェックします。
var mail1 = "john.ga@gmail.com";
var mail2 = "john_wb@gmail.com";
var searchData = "john.";
var pattern1 = new RegExp("(?:^|[\\s\@])"+searchData, "i");
if(pattern1.test(mail1)){
console.log("matched is:::"+mail1.match(pattern1));
}
if(pattern1.test(mail2)){
console.log("matched is:::"+mail2.match(pattern1));
}
これは、mail2 と一致してはなりません。しかし、それは「。」を考慮していません。また、mail2と一致します。
フィドル: http://jsfiddle.net/LQg7W/2319/
しかし、「searchData」変数を「john_」として指定すると、正しく検索されます。
フィドル: http://jsfiddle.net/LQg7W/2320/
この問題を解決する方法。