我期待我過濾輸入,所以它只能包含數字濾波器輸入數字只有
re = /[^0-9]/;
if(!re.test(form.number.value)) {
alert("Member must contain only numbers. Please try again");
form.member.focus();
return false;
}
,但它沒有工作(如果我給例如輸入123fd,它不給我錯誤)任何人都可以幫助我?
我期待我過濾輸入,所以它只能包含數字濾波器輸入數字只有
re = /[^0-9]/;
if(!re.test(form.number.value)) {
alert("Member must contain only numbers. Please try again");
form.member.focus();
return false;
}
,但它沒有工作(如果我給例如輸入123fd,它不給我錯誤)任何人都可以幫助我?
因爲你的正則表達式是檢查非數字因此改變否定你,如果條件:
re = /\D/;
if(re.test(form.number.value)) {
alert("Member must contain only numbers. Please try again");
// rest of code
}
代替:
if(!re.test(form.number.value)) {...}
您可以使用HTML5輸入類型數量僅限制數量條目:
<input type="number" name="someid" />
非常糟糕,因爲它是客戶端的東西,任何人都可以篡改它。 沒有downvote,但沒有upvote以及。 –
if($input == intval($input)){
//OK
}
編輯對不起它的JavaScript:
if(input == parseInt(input)){
//OK
}
你的正則表達式匹配任何東西,但數字。當你否定測試時,你基本上會說「匹配數字」,這意味着你沒有得到非數字字符串的警報消息。例如:
!(/[^0-9]/.test('123'))
// true -> alert
!(/[^0-9]/.test('123fd'))
// false -> don't enter if clause
您可以通過刪除if語句中的感嘆號來修復代碼。然而,表達你的測試是作爲anubhava更清晰的方式提到:
if (/\D/.test(form.number.value)) {
// validation error
}
凡\D
匹配非數字字符。
當你說它「沒有工作」,發生了什麼?有錯誤嗎?輸出是否與您預期的不同?添加一些示例輸入和輸出到你的問題。 – Michelle