Javascript电话号码验证
我需要验证JavaScript中的电话号码。 的要求是:Javascript电话号码验证
他们应该是10位数字,没有逗号,没有 破折号,只是数字,而不是前面的 1+
这是我写到目前为止
function validatePhone(field,alerttxt) {
with (field) {
if(value.length > 10) {
alert(alerttext);
return false;
}
for(i = 0; i < value.length; i++) {
if(parseInt(value[i]) == NaN) {
alert(alerttxt);
return false;
}
}
return true;
}
}
function validateForm(thisform) {
if (validatePhone(phone,"Invalid phone number")==false) {
phone.focus();
return false;
}
}
}
<form action="post.php" method="post" id="contactform" onsubmit="return validateForm(this)">
<ol>
<label for="phone">Your phone <span class="red"></span></label>
<input id="phone" name="phone" class="text" />
</li>
</ol>
</form>
但是,显然它不起作用。 如何编写validatePhone()
函数以使其正常工作?
phone = phone.replace(/[^0-9]/g, '');
if(phone.length != 10) {
alert("not 10 digits");
} else {
alert("yep, its 10 digits");
}
这将验证和/或根据您的要求更正,删除所有非数字。
固定功能:
function validateForm(thisform) {
if (validatePhone(thisform.phone,"Invalid phone number")==false) {
thisform.phone.focus();
return false;
}
return true;
}
只是一个低级的工作我忘了在函数的开头加入(thisform),但实际上我写了它) – 2010-03-05 13:30:03
但是你也有额外的“}”符号 – antyrat 2010-03-05 14:23:29
你可以使用正则表达式:
function validatePhone(field, alerttext) {
if (field.match(/^\d{10}/)) {
return true;
}
alert(alerttext);
return false;
}
你*不应该*,实际上,使用正则表达式来[正确验证电话号码](http://stackoverflow.com/a/4338544/1269037)。 – 2014-02-26 07:50:17
他的要求说,他应该检查一个10位数字格式没有别的。所以这个正则表达式检查应该没问题。您是对的:我不喜欢将我强制转换为特定电话号码格式的应用程序。检查最小长度,数字和任何顺序的一些() - + /字符都可以,例如:'^ [0-9()+/-] {5,} $' – arnep 2014-02-27 07:59:13
守则惟独数字括号和破折号
function DoValidatePhone() {
var frm = document.forms['editMemberForm'];
var stripped = frm.contact.value;
var isGoodMatch = stripped.match(/^[0-9\s(-)]*$/);
if (!isGoodMatch) {
alert("The Emergency Contact number contains invalid characters." + stripped);
return false;
}
}
谷歌的libphonenumber是验证和电话号码的格式在世界各地非常有帮助。它比使用RegEx更容易,更隐蔽,更健壮,它有JavaScript,Ruby,Python,C#,PHP和Objective-C风味。
* This *。人们似乎并不了解[正则表达式是天真的解决方案](http://stackoverflow.com/questions/37684/how-to-replace-plain-urls-with-links/21925491#21925491)验证真实世界的数据。 – 2014-02-26 07:44:43
function validate(phoneString){
reg = /^([+|\d])+([\s|\d])+([\d])$/;
return reg.test(phoneString);
}
什么是不友好的系统。让人们输入空格和破折号,然后忽略它们。国际电话号码呢? – Quentin 2010-03-05 10:43:37
这看起来像一个学校作业。对于严重使用,您*不应使用正则表达式来[正确验证电话号码](http://stackoverflow.com/a/4338544/1269037)。 – 2014-02-26 07:52:12
@DanDascalescu其实在那个时候,这不是一个学派。 RentACoder – 2014-02-26 10:38:18