我使用此代码验证电话号码:
<script>
$("#Phone").keydown(function (e) {
// Allow: backspace, delete, tab, escape, enter and .
if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
// Allow: Ctrl+A
(e.keyCode == 65 && e.ctrlKey === true) ||
// Allow: home, end, left, right, down, up
(e.keyCode >= 35 && e.keyCode <= 40)) {
// let it happen, don't do anything
return;
}
// Ensure that it is a number and stop the keypress
if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
e.preventDefault();
}
});
var val = Phone.value
if (/^\d{11}$/.test(val)) {
// value is ok, use it
} else {
alert("Invalid number; must be eleven digits")
Phone.focus()
return false
}
</script>
我希望用户只输入11位数字,如果没有,则会提醒用户他们必须输入11位数字并将值设置为空。
问题是,当它警告该数字小于11位时,它不会将该值设置为空。
答案 0 :(得分:0)
我知道你要求一个JS解决方案,但这可以通过html5中的新属性来完成
<input type="tel" pattern="[0-9]{11}" placeholder="Your 11 digit phone number..." required/>
答案 1 :(得分:0)
此代码可以帮助您,因为您可能遇到正则表达式的问题
$pref = 'P';
$testArray = array("apple", "ant", "book", "bag");
extract($testArray, EXTR_PREFIX_INVALID, $pref);
var_dump($P_1); // ant