/^ + {0,1}(?:\ d \ s?){11,13} $ /這個正則表達式只允許在第一個位置和數字只...使用正則表達式限制文本框中的輸入
的按鍵我想用戶應該只能夠在第一+型和數字,上面的正則表達式是什麼總是驗證碼,但去如果不是在這種情況下
function ValidatePhone(phone) {
var expr = /^\+?(?:\d\s?){11,13}$/;
return expr.test(phone);
}
var countofPlus = 0;
$("#phone").on("keypress", function (evt) {
if (evt.key == "+")
{
countofPlus = countofPlus + 1;
if (countofPlus > 1 || this.value.length >= 1) {
return false;
}
else return true;
}
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && charCode != 43 && charCode != 32 && charCode != 40 && charCode != 41 && (charCode < 48 || charCode > 57))
return false;
return true;
});
$("#phone").on("keyup", function (evt) {
debugger;
if (evt.key == "+") {
countofPlus--;
return true;
}
});
參見例如https://stackoverflow.com/a/37421357/1647737 –
它可能不起作用,因爲用戶無法鍵入所需的最少11個字符與一鍵按... –
這是一個非常奇怪的和非用戶友好的實施。 **不要使用'keypress'功能**。例如,當焦點離開頁面元素時,如果該數字是意外格式,則可以在文本框上顯示*警告*。 (並在後端再次驗證。) –