密码正则表达式 - 带有 unicode 标志的正则表达式中不允许使用原始大括号

Cyr*_*ris 4 javascript regex validation jquery twitter-bootstrap

我正在使用 jquery 插件引导验证器进行实时前端验证。

当我添加模式/正则表达式验证来验证密码(任何至少 8 个字符长的字符串)时,出现以下错误

无法检查,<input pattern='^.*{8,}$'>因为该模式不是有效的正则表达式:带有 unicode 标志的正则表达式中不允许使用原始大括号

该 HTML 是

<input pattern="^.*{8,}$" class="form-control" required="required" name="user[password]" id="user_password" type="password">
Run Code Online (Sandbox Code Playgroud)

我应该如何编写正则表达式?

Dek*_*kel 5

你应该改用^.{8,}$

此正则表达式对任何字符有效 - 8 次或更多。

请注意,它还允许密码中包含空格。如果你想允许任何不是空格的字符,你可以使用^[^\s]{8,}$

您当前的正则表达式实际上是

接受任何 char ( .) - 任意次数 (*),并接受至少 8 个字符的它(“任意次数的任意字符”){8,}(这没有意义)。