我想验证电话号码前缀和位数。
电话号码将是11位长(只有数字)。字冠必须以080、081、090、091、070开头,最大长度为11位。
我在javascript中使用下面的代码放置了一个验证代码来验证电话号码数字,它工作得很好。
**Phone number 11 digits validation code below;**
} else if (form.usercheck1.value.length<11 ||
form.usercheck1.value.length>11) { alert("phone number should be 11 digits!");
}
但是我需要帮助来验证电话前缀。如有任何帮助,不胜感激。
我完整的javascript代码如下;
/* myScript.js */
function check(form) /*function to check userid & password*/ {
/*the following code checkes whether the entered userid and password are matching*/
if (form.usercheck1.value == "1234" ||
form.usercheck1.value == "12345") {
alert("An account already exist with this phone number! nKindly login to proceed.") // displays error message
} else if (form.usercheck1.value.length < 11 || form.usercheck1.value.length > 11) {
alert("phone number should be 11 digits!");
} else {
window.location.replace('https://www.google.com')
/*opens the target page while Id & password matches*/
}
}
}
您可以使用这种模式:^0([89][01]|70)d{8}$
检查前缀和总共11位数字。
注意:你说最多11个数字,但当我读你的代码,似乎你想要正好11个数字,上面的模式正好适用于11个数字。如果你想让它最多11位,你可以使用这个:^0([89][01]|70)d{0,8}$
<!DOCTYPE html>
<html>
<body>
<form>
<label for="phone_number">Phone number: </label>
<input type="text" id="phone_number" name="phone_number" pattern="^0([89][01]|70)d{8}$" title="Maximum length is 11 and Phone number must start with one of 080, 081, 090, 091 or 070 And must be all numeric">
<input type="submit" value="Submit">
</form>
</body>
</html>
你真的需要使用正则表达式吗??
你认为哪一个更容易理解?
/^0(?:[89][01]|70)/.test(input)
['080', '081', '090', '070', '091'].includes(input.substring(0,3))
除非列表非常长,并且有一个明确的模式,否则我不会选择在这里使用神秘的正则表达式。