2011-11-30 4 views
0

Je suis en train de créer une fonction qui passera certains paramètres à un script regex:javascript modèle regex avec une variable chaîne ne fonctionne pas

function classAttributes(classString, className) { 
    var data; 
    var regex = new RegExp(className+"\[(.*?)\]"); 
    var matches = classString.match(regex); 

    if (matches) { 
     //matches[1] refers to options inside [] "required, email, ..." 
      var spec = matches[1].split(/,\s*/); 

      if (spec.length > 0) { 
       data = spec; 
      } 
    } 

    return data; 
} 

mais pour une raison quelconque, il ne marche pas comme la variable de chaîne que je le passe "new RegExp (className +" [(. *?)] ");" il ne jette pas une erreur, mais la validation ne fonctionne pas.

Edit: Je prendrai les informations de la stribute de classe et passer comme classString

<div class="field-character-count test[asd, 123, hello]"></div> 

et le « className » représentera « test »

+0

Que contiennent exactement classString et className? – Leon

Répondre

4

Je pense que vous devez les backslashs à l'intérieur de la chaîne de recherche -

var regex = new RegExp(className+"\\[(.*?)\\]"); 
+0

merci bien cela fonctionne !! – Alex

Questions connexes