2010-07-27 4 views
0

Iam utilisant une Jquery bibliothèque qui prend l'expression régulière au format JSON dans le dossier et tente de valider à partir du fichierjQuery Expression régulière Problème

"Studentnumber":{ 
    regex: "/^[-/@#&$*\w\s]+$/", 
    alertText: "* Invalid Student Number" 
}, // ... 

Je peux utiliser dans mon champ de texte de la boîte comme suit

<input type="text" class="validate[required,custom[Studentnumber]] Textbox"> 

Plus tôt, je l'habitude d'avoir JavaScript expression régulière pour le champ, comme suit

<input type="text" validate="regex" regex='^[-/@#&$*\w\s]+$' name="sno" id="sno"> 

Lorsque j'utilise la même expression régulière que celle utilisée dans JavaScript pour jquery. Il n'est pas valide en JavaScript et donne des résultats inappropriés. Quelle est la différence entre les deux?

+0

Pensée aléatoire - '&' vs '&' dans votre attribut HTML? – gnarf

+1

Vous devriez probablement échapper le/dans l'intérieur de l'expression rationnelle. – Robusto

+0

Aussi - JavaScript vous permet de définir un RegExp comme '/^[- \/@ # & $ * \ w \ s] + $ /' (notez l'absence de guillemets), pourrait aussi aider. – gnarf

Répondre

1

Depuis votre utilisant backspaces dans une chaîne, et veulent après, vous devez leur échapper, comme ceci:

"Studentnumber":{ 
    regex: "/^[-/@#&$*\\w\\s]+$/", 
    alertText: "* Invalid Student Number" 
} 

Cependant, je ne suis pas sûr à 100% à l'arrière En regardant ça, il pourrait y avoir 4 barres obliques inverses au lieu de 2, mais le raisonnement pour pourquoi m'échappe pour le moment.

0

Cela dépend de la façon dont le plugin fonctionne avec regexp, essayez de supprimer les guillemets ou construire une nouvelle instance:

"regex": /^[-/@#&$*\w\s]+$/ 

ou

"regex": new RegExp("/^[-/@#&$*\w\s]+$/") 
+0

Merci beaucoup, Merci beaucoup, Merci beaucoup, Merci beaucoup, Merci beaucoup, Merci beaucoup, Merci beaucoup, Merci un beaucoup, merci beaucoup, merci beaucoup. mais quelle est la différence entre avoir les guillemets doubles et ne pas l'avoir dans la requête j – Someone