我正在尝试验证电话号码。但这似乎不起作用。为什么这不起作用?
<html>
<head>
<script>
function validateForm() {
var phone1 = document.forms["myForm"]["phone"].value;
var phone2 = ^(\+0?1\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$;
if ( phone1.value.match(phone2) ){
return true;
}else{
alert("Please enter a valid phone number");
return false;
}
}
</script>
</head>
<body>
<form name="myForm"
onsubmit="return validateForm()" method="post">
<label for="phone">Phone:</label><input name="phone" id="phone" value="" placeholder="Zip..." type="text" onsubmit="return validateForm()"/>
<button type="submit">Submit</button>
</form>
</body>
</html>
这肯定与if语句中的值比较有关,我只是不知道如何准确地做到这一点。
最佳答案
您的模式RegExp ,根据您的模式验证电话号码,您应该按照以下方式进行验证。
查看 LIVE
JS
function validateForm() {
var re = /^(\+0?1\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$/;
var phone1 = document.forms["myForm"]["phone"].value;
var m = re.exec(phone1);
if (m && m[0]){
return true;
}else{
alert("Please enter a valid phone number");
return false;
}
}
HTML
<form name="myForm" onsubmit="return validateForm()" method="post">
<label for="phone">Phone:</label>
<input name="phone" id="phone" value="" placeholder="Zip..." type="text" onsubmit="return validateForm()" />
<button type="submit">Submit</button>
</form>
<小时/>
使用应该使用RegExp图案
^((\+?)(1?(\-?)?))(\d{3})(-|\s)?\d{3}(-|\s)?\d{4}$
关于javascript - 我正在尝试使用 JavaScript 来验证电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30723150/