2012-04-10 82 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