在给定的代码中,best.test(password)
返回true,但是当我在if()中使用它时
条件将其视为虚假。
代码:
if(best.test(password)) //It takes it as a false .
{
document.write(best.test(password));
tdPwdStrength.innerHTML="best"+best.test(password); //but in actual it is true and returning true.
}
请建议!
答案 0 :(得分:1)
什么是best
?它是一个'全局'RegExp,也就是设置了g
标志的那个?
如果是这样,那么每次拨打test
或exec
时,您都会得到不同的答案,因为它会记住上一个字符串索引并从那里搜索:
var r= /a/g; // or new RegExp('a', 'g')
alert(r.test('aardvark')); // true. matches first `a`
alert(r.test('aardvark')); // true. matches second `a`
alert(r.test('aardvark')); // true. matches third `a`
alert(r.test('aardvark')); // false! no more matches found
alert(r.test('aardvark')); // true. back to the first `a` again
JavaScript的RegExp界面充满了令人困惑的小陷阱。小心。