Je dois valider un numéro de téléphone en javascript. Les conditions sont les suivantes:
ils doivent comporter 10 chiffres, pas de virgule, pas de tirets, mais uniquement les chiffres, et non le 1+ devant
c'est ce que j'ai écrit jusqu'à présent
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>
mais, évidemment, cela ne fonctionne pas. Comment puis-je écrire la fonction validatePhone()
pour qu’elle fonctionne?
phone = phone.replace(/[^0-9]/g, '');
if(phone.length != 10) {
alert("not 10 digits");
} else {
alert("yep, its 10 digits");
}
Cela validera et/ou corrigera en fonction de vos besoins, en supprimant tous les chiffres non numériques.
Le paramètre libphonenumber est très utile pour la validation et la mise en forme des numéros de téléphone dans le monde entier. Il est plus facile, moins crypté et plus robuste que d’utiliser un RegEx. Il existe en versions JavaScript, Ruby, Python, C #, PHP et Objective-C.
Vous pouvez utiliser des expressions régulières:
function validatePhone(field, alerttext) {
if (field.match(/^\d{10}/)) {
return true;
}
alert(alerttext);
return false;
}
Code à l'exception des chiffres entre accolades et tirets
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;
}
}
Fonction fixe:
function validateForm(thisform) {
if (validatePhone(thisform.phone,"Invalid phone number")==false) {
thisform.phone.focus();
return false;
}
return true;
}