web-dev-qa-db-fra.com

Validation du numéro de téléphone Javascript

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?

11
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.

29
Erik

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.

11
Aaron Gray

Vous pouvez utiliser des expressions régulières:

function validatePhone(field, alerttext) {
    if (field.match(/^\d{10}/)) {
         return true;
    } 
    alert(alerttext);
    return false;
}
7
arnep

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;
    }
}
1
Peter Brooks

Fonction fixe:

function validateForm(thisform) {
        if (validatePhone(thisform.phone,"Invalid phone number")==false) {
            thisform.phone.focus();
            return false;
        }
        return true;
}
0
antyrat