2011-11-11 1 views
8

Possible en double:
How can i use preg_match in jQuery?Quel est l'équivalent JavaScript de preg_match?

Quel est l'équivalent jquery de la fonction preg_match PHP? En PHP, il serait:

preg_match('/[^a-zA-Z0-9]/', $str); 

qui vérifie si la chaîne a autre chose que des lettres et des chiffres. Je voudrais ajouter une validation côté client à mon site, mais j'ai regardé et regardé et je n'arrive pas à trouver l'équivalent de jQuery. Merci.

+1

S'il vous plaît travailler sur le choix des titres utiles. –

Répondre

3

pas jQuery, mais JavaScript

var myStr = "something"; 

/[^a-zA-Z0-9]/.test(myStr) // will return true or false. 

ou pour plus de clarté

var regEx=/[^a-zA-Z0-9]/; 

regEx.test(myStr) 

La méthode d'essai fait partie de l'objet RegEx ... Voici une référence

http://www.w3schools.com/jsref/jsref_regexp_test.asp

+0

Plusieurs problèmes ici. First '.test()' est seulement une méthode d'un objet d'expression régulière, pas une chaîne. Deuxièmement, vous ne mettez pas de guillemets autour de l'expression régulière lorsque vous utilisez la notation '/ xxx /'. Troisièmement, vous avez 'myStr' dans un endroit dans' mystring' dans un autre. – jfriend00

+0

@ jfriend00 Vous devriez rafraîchir votre écran pendant la durée de 5min que chaque utilisateur obtient en complétant sa réponse. –

+0

J'ai répondu à ce que vous avez écrit à l'origine comme votre réponse. Si vous ne voulez pas de commentaires comme celui-ci, votre réponse originale ne devrait pas contenir autant d'erreurs car elle n'était même pas proche de la corriger. – jfriend00

8

En JavaScript simple (pas de jQuery nécessaire pour cela), vous utiliseriez simplement t il méthode .match() de l'objet string qui retournera null si aucune correspondance et un tableau s'il y a des matches:

var str = "myteststring"; 
if (str.match(/[^a-zA-Z0-9]/)) { 
    // contains illegal characters 
} 
1

Si vous voulez faire correspondre une chaîne, vous pouvez le faire avec JS vanille:

var str = "here's my string"; 
var matches = str.match('/[^a-zA-Z0-9]/'); 

Si vous essayez de le faire sur un sélecteur, et en utilisant jQuery, vous pouvez utiliser:

$("div:match('/[^a-zA-Z0-9]/')")