2011-11-30 60 views
0

我試圖創建將通過一些參數的正則表達式腳本函數:JavaScript的正則表達式與變量字符串不工作

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; 
} 

,但由於某種原因,它不喜歡的字符串變量,我將它傳遞「new RegExp(className +」[(。*?)]「);」 它不會拋出一個錯誤,但驗證不起作用。

編輯: 我會從類stribute的信息,並把它作爲classString

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

和「類名」將代表「測試」

+0

classString和className究竟包含什麼? – Leon

回答

4

我認爲你需要躲避反斜槓在搜索字符串中 -

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

非常感謝這個作品! – Alex

相關問題