下面是检查表达式的代码。它将在空格之后和 @ 之后检查字符串的开始。
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/
如何解决这个问题。