如何在javascript中检测布尔值true和false?

res*_*uio 3 html javascript jquery

这是我的日期验证代码,当填入28/02/2017输入类型文本和按下按钮时.

首先它会true在代码中看到警报,如果第一个警报是true秒针警报也会提醒true.但我的第二个是警惕false.

检测布尔值的错误是什么?

if(regex.test(txt) === true)
{
    alert("true");
    p.innerHTML = "<h1 style='color:green'>Correct</h1>";
}
else
{
    alert("false");
    p.innerHTML = "<h1 style='color:red'>Wrong</h1>";;
}
Run Code Online (Sandbox Code Playgroud)

.

<input type="text" id="date" name="date" value="dd/mm/yyyy" />
<button onclick="isDate();">Check</button>

<p id="response"></p>
<script>
function isDate() {
    
    var regex = /^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/g;
    
    var txt = document.getElementById("date").value;
    var p = document.getElementById("response");
    
	alert(regex.test(txt));
	
	if(regex.test(txt) === true)
	{
		alert("true");
		p.innerHTML = "<h1 style='color:green'>Correct</h1>";
	}
	else
	{
		alert("false");
		p.innerHTML = "<h1 style='color:red'>Wrong</h1>";;
	}  
} 
</script>
Run Code Online (Sandbox Code Playgroud)

Arc*_*her 7

原因是regex.test()将搜索字符串并返回true是否匹配.如果您随后.test()再次打电话,它将从中断的地方继续.

使用test()与全局标志正则表达式

如果正则表达式设置了全局标志,test()则会提升lastIndex正则表达式.随后的使用test()将在str指定的子字符串处开始搜索lastIndex(exec()也将使lastIndex属性前进).

从这里:MDN Web文档 - RegExp.prototype.test()