Jquery正则表达式范围不适用于密码

时间:2017-06-01 10:53:46

标签: jquery regex

我试图通过不小于3个字母的密码的最小范围,但每次我的文本/密码都被执行。

以下是我的代码:

$.formUtils.addValidator({
        name: "userpassword",
        validatorFunction: function(a) {
         return !!a.match((/^\s*[A-Za-z0-9@_\./\-]{5,}+\s*$/))
        },
        errorMessage: "Please enter a valid Password for user (Special characters are not allowed apart from At sign (@),Underscore(_), Hyphen(-) and Period(.)) <br> Minimum length for password is 5",
        errorMessageKey: "badname"
    })

2 个答案:

答案 0 :(得分:1)

JS正则表达式不支持占有量词。

您可以通过在限制量词后删除+来修复模式:

a.match((/^\s*[A-Za-z0-9@_.\/-]{5,}\s*$/)

请注意,/可以更好地转义(即使在大多数浏览器中,如果将其保留在字符类中,它也能正常工作),.不必在字符类中转义并且不必转义字符类末尾的-

此外,您可以将A-Za-z0-9_替换为\w来缩短正则表达式:

a.match((/^\s*[\w@.\/-]{5,}\s*$/)

答案 1 :(得分:0)

解决方案:

public static void format(Date date){
   String pattern = "MMM d yyyy";
   LocalDateTime localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
   DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
   String result = formatter.format(localDate);
   // new Date() -> Jun 1 2017
 }

需要在}

后删除+