2010-10-16 6 views
0

Qu'est-ce que cette regex est censée faire, parce qu'elle ne cesse de rendre nul?regex ne fonctionne pas

var klass = this.rel.match(/facebox\[?\.(\w+)\]?/) 

Je pensais qu'il extrayait des mots supplémentaires de l'attribut rel?

merci, Richard

Répondre

3

Matches

facebox // facebox 
\[?  // [ or nothing 
\.  // . 
(\w+)  // word* 
\]?  // ] or nothing 

entrées valides:

facebox[.bb 
facebox.bb] 
facebox[.bb] 
facebox.bb 

entrées non valides

facebox[bb] 
faceboX[.bb] 
Facebox.bb] 

A propos de \w *

Correspond à tout caractère de mot. Équivalent aux catégories de caractères Unicode [\ p {Ll} \ p {Lu} \ p {Lt} \ p {Lo} \ p {Nd} \ p {Pc}]. Si le comportement conforme à ECMAScript est spécifié avec l'option ECMAScript, \ w est équivalent à [a-zA-Z_0-9].

Référence

+0

Comment expliqueriez-vous votre evauation de la situation à quelqu'un de nouveau Regex: ou en termes simples? Je pense qu'un tel ajout à votre réponse orginale le rendrait inestimable pour les futurs visiteurs, et susciterait plus de votes positifs. –

+0

c'est une réponse parfaite sauf que je pense que vous vouliez dire que (\ w +) correspond à un seul mot, et pas "mots" (sauf s'ils sont séparés par des traits de soulignement) je crois que c'est l'équivalent de ([a-zA-Z0 -9 _] +). – gnomed

+0

@gnomed: Merci :). J'ai mis à jour ma réponse en étendant l'explication de '\ w'. Merci pour l'indice. – BrunoLM

Questions connexes