2012-04-10 42 views
0

我已經使用了這個正則表達式^(?=。[a-zA-Z]。)[a-zA-Z0-9?。!! @#'\ s] {2,200} $。它應該包含特殊的(! @#),字母數字字符,它應該允許最多200個字符。 但是,在這裏我得到像未終止的字符串常量的錯誤..在谷歌我試過...它是說我們需要代表元字符像美元,* \ 我不能這樣做......任何人都可以幫我出正則表達式未終止的字符串常量錯誤Javascript

我的代碼是這樣的

$.validationEngineLanguage = { 
    newLang: function(){ 
     $.validationEngineLanguage.allRules = { 
      "required": { // Add your regex rules here, you can take telephone as an example 
       "regex": "none", 
       "alertText": "This field is required", 
       "alertTextCheckboxMultiple": "* Please select an option", 
       "alertTextCheckboxe": "* This checkbox is required", 
       "alertTextDateRange": "* Both date range fields are required" 
      }, 
      --- 
      ---- 
      "passwordval": { 
      "regex":^(?=.*[a-zA-Z].*)[a-zA-Z0-9 ?.!*@#'\s]{2,200}$, 
      "alertText": "* Not a valid password" 
      }, 
      }; 

    } 
}; 

$.validationEngineLanguage.newLang(); 

我面臨的問題,在 「passwordval」:

+1

請出示實際的代碼(我們不知道,如果你甚至使用正確的語法來創建正則表達式),學習形式的問題(有一個GUI和一個幫助按鈕!)。 – Quentin 2012-04-10 12:49:06

+1

聽起來像你有......等待它......一個沒有終止的字符串常量。如何顯示出現錯誤的代碼? – JJJ 2012-04-10 12:49:47

+1

我真的很討厭人們告訴我什麼應該和不應該在我的密碼。如果我更喜歡愚蠢,選擇一個愚蠢的密碼,或者如果我想使用特殊字符('<或'é'),我應該可以這樣做。添加基本​​規則(例如,「至少3個字符」)爲什麼不,但是強制用戶擁有特殊字符只是令人討厭。我建議你要做的是在密碼上使用一個度量標準,並將最小複雜度代替爲:http://www.passwordmeter.com/。 'MyNameIsColinHebertAndILikeToUseThisPassword'不尊重你的規則),但卻非常安全。 – 2012-04-10 13:15:51

回答

0

似乎有在你的正則表達式

  • 變更的錯誤此行

    "regex" : ^(?=.*[a-zA-Z].*)[a-zA-Z0-9 ?.!*@#'\s]{2,200}$, 
    

    "regex" : "^(?=.*[a-zA-Z].*)[a-zA-Z0-9 ?.!*@#'\\s]{2,200}$", 
    

通知

The double quote around the regular expression and the extra \ before \s 
+0

此修復沒有任何意義。在'[]'中表示''''表示'\'或's'作爲字符 – 2012-04-10 14:47:55

+0

@ColinHebert,在JavaScript正則表達式中,額外的「\」是「\ s」的轉義符號,表示「空間」,你可以在這裏看到它http://jsfiddle.net/TMZDf/ – Joberror 2012-04-10 15:39:42

+0

你不能在括號中使用它 – 2012-04-10 16:02:17

0
var reExample = new RegExp("^(?=.[a-zA-Z].)[a-zA-Z0-9 [email protected]#'\s]{2,200}$"); 

注意 「」

reExample.test("dfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdfdfsfsdfsdf"); 

上述產量假

reExample.test("dfsfsdfsdfdfsfsd"); 

這會產生真正的

(假設你正在使用的JavaScript)

+0

並與您新發布的代碼....嘗試「」正則表達式 – Steen 2012-04-10 12:59:08

相關問題