2010-04-13 4 views
2

J'ai un site qui nécessitera un login par les utilisateurs. Le client n'acceptera que les utilisateurs du domaine de leur entreprise pour y accéder. Je dois valider le champ en fonction d'une adresse de domaine de messagerie. c'est à dire. Autoriser uniquement les adresses e-mail de @ mycompany.com à passer.Validation d'un champ e-mail basé sur un domaine spécifique

Est-ce que cela peut être fait avec le plugin jquery.validate? Je vois où vous pouvez vérifier si c'est un e-mail valide, mais je voudrais m'assurer qu'il correspond à un modèle spécifique (@ mycompany.com).

Toute aide serait appréciée!

Répondre

3

Utilisez simplement le jQuery valider, et faire une comparaison de chaîne à vérifier que l'e-mail se termine par le domaine attendu.

De cette façon, vous savez que le courriel apparaît valide, et est du domaine requis.

Voici une méthode possible de vérification du domaine. Cela ne nécessite pas réellement jQuery.

/** 
* Checks that the user's email is of the correct domain. 
* 
* userInput: potential email address 
* domain: Correct domain with @, i.e.: "@mycompany.com" 
* Returns: true iff userInput ends with the given domain. 
*/ 
function checkDomain(userInput, domain) { 
     // Check the substring starting at the @ against the domain 
     return (userInput.substring(userInput.indexOf('@')) === domain; 
} 
+0

Merci Ben, Je suis très nouveau pour jQuery. Avez-vous des recommandations sur la façon d'écrire ce code de comparaison? Merci! –

+0

J'ai ajouté une fonction qui fait ce que je décris en utilisant javascript simple. –

+0

Devrait effectivement être retourné userInput.substring (userInput.indexOf ('@')) === domain; Vous avez eu un trop de fermetures. –

0
In this example my domain is "@uol.edu.pk". You can do it like this. 


    $(document).ready(function (e) { 
       $('#SubmitButton').click(function() { 
        var email = $('#form-email').val(); 
        // Checking Empty Fields 
        if ($.trim(email).length == 0 || $("#form-first-name").val() == "" || $("#form-password").val() == "" || $("#Password1").val()=="") { 
         alert('All fields are Required'); 
         e.preventDefault(); 
        } 
        if (validateEmail(email)) { 
         alert('Good!! your Email is valid'); 
        } 
        else { 
         alert('Invalid Email Address'); 
         e.preventDefault(); 
        } 
       }); 
      }); 
      // Function that validates email address through a regular expression. 
      function validateEmail(pEmail) { 
       var filterValue = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/; 
       if (filterValue.test(pEmail)) { 
        if (pEmail.indexOf('@uol.edu.pk', pEmail.length - '@uol.edu.pk'.length) != -1) 
        { 
         return true; 
        } 
        else { 
         alert("Email Must be like([email protected])"); 
         return false; 
        } 
       } 
       else 
       { 
        return false; 
       } 
      } 
    enter code here 
Questions connexes