我使用JavaScript的正則表達式字符串:JavaScript的正則表達式的數字不匹配,包含單零
val.match(/\d*$/)
它的工作如預期當字符串爲「0」的所有號碼的期望。單個零值不匹配。我如何包含它?
測試用例:
<html>
<head>
<script src="scripts/jquery-1.5.1.min.js" type="text/javascript"></script>
</head>
<body>
<input type="text" id="txtRange" />
<div id="result" />
<script type="text/javascript">
var rangeValidate = function (val, min, max) {
if (val == "") {
return "You must specify a number between " + min + " and " + max;
} else if (val.match(/\d*$/) == false) {
return "You must specify a number between " + min + " and " + max;
} else if ((val < min) || (val > max)) {
return "You must specify a number between " + min + " and " + max;
} else {
return "";
}
return "You must specify a number between " + min + " and " + max;
}
$('#txtRange').bind('change', function(){
var value = $('#txtRange').val();
var resultText = rangeValidate(value, 0, 8);
$('#result').html(resultText);
});
</script>
</body>
</html>
@Felix King - 在JavaScript中,字符串「0」肯定是**不是**「falsy」。這是一個非空字符串,因此它是「真實的」。 – Pointy 2011-03-23 19:01:28
@Pointy:至少在Chrome控制檯中,輸入「」0「== false」會給我「真」。我應該如何理解?我看到......還有一些轉換正在進行中。 – 2011-03-23 19:02:37
嘗試'!!「0」'而不是'if(「0」)alert('falsy');' – Pointy 2011-03-23 19:03:54