当前位置: 首页 > 知识库问答 >
问题:

带有密码模式的角度中的正则表达式问题

苏麒
2023-03-14

form control()validators . pattern()与此regex表达式有问题,用于验证1个字符、1个数字、最少8个字符、最多16个字符的密码。

通过验证程序的测试密码:

asdfqwer//不应通过验证器

zxcvasdf//不应通过验证器

asdfqwer2 //这是正确的

不通过验证器的测试密码:

程序//这是正确的

在服务器端尝试这种模式或者使用在线regex测试平台都没有问题

// some code
password: new FormControl('',
    [
      Validators.minLength(8),
      Validators.maxLength(16),
      Validators.pattern('^$|^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,16}$')
    ]),
// some code

共有1个答案

唐信瑞
2023-03-14

你可以用

Validators.pattern('(?:(?=[^A-Za-z]*[A-Za-z])(?=\\D*\\d)[A-Za-z\\d]{8,16})?')

Angular 将自动用 ^$ 括起来字符串图案,使其 '^(?:(?=[^A-Za-z]*[A-Za-z])(?=\\D*\\d)[A-Za-z\\d]{8,16})?$'.

注意双反斜杠:在字符串文字中,必须用另一个反斜杠对一个反斜杠进行转义,以定义文字反斜杠,这是一个正则表达式转义符。

由于整个模式被一个可选的非捕获组所包围,因此空字符串也将与该模式匹配。

(? =[^A-Za-z]*[A-Za-z])(?=\\D*\\d)现在没有。*这符合对比原则。

 类似资料:
  • 要求: 在我的角度应用程序中,用户密码应符合以下要求, < li >最少八个字符 < li >至少一个大写字母 < li >至少一个小写字母 < li >至少一个号码 < li >至少一个特殊字符 问题: 对于上述要求,我使用下面的正则表达式。 前任:1F4@sf5s6,18F4@sf5s6 问题: Q1:这个正则表达式不符合我的要求吗? Q2:如何解决这个问题? Q3:有没有其他方法来实现这个要

  • 我需要密码规则。以下是规则。 密码必须遵循以下准则: > 至少有八个字符长 包含这4个选项中的3个:小写字母、大写字母、数字或特殊字符 当用户指定不符合上述规则的密码时,返回消息说明: 密码长度必须至少为8个字符,并包含以下4个选项中的3个: 小写字母(a-z) 大小写字母(A-Z) 数字(0-9) 特殊字符 (! @#$%^ 请帮助我获得一个正则表达式来处理上述条件。 我感谢你的帮助。以下是我的

  • 问题内容: 我在网上找到了一个脚本,并且在JavaScript中有一个密码正则表达式。我仍然想使用它,但是为了获得更高的安全性,我也想使用PHP来验证我的密码,但是我对正则表达式毫无用处。 要求: 必须至少8个字符 必须包含至少1个数字 必须至少包含一个大写字符 必须至少包含一个小写字符 如何构造正则表达式字符串以满足这些要求? 问题答案: 我发现在一个大的正则表达式中执行此操作有点像代码维护的噩

  • 寻找以下规则验证密码的帮助: 8个字符 包含至少1个大写字母 包含至少1个小写字母 包含至少一个数字 不能以数字开头 不包含特殊字符 我已经做到了:

  • 我需要制作一个密码模式验证器 密码应具有: < li>1个大写字母 < li>1个小写字母 < li >一个号码 < li >最小长度为8。 我发现了这个正则表达式模式: 然而,验证器总是声称我的输入无效 根据 https://regex101.com/r/AfAdKp/1 此值应该是有效的。 编辑:澄清一下,Test1234应该可以工作

  • 问题内容: 我得到了一个包含多行纯utf-8文本的文件。如下所示,按中文,是中文。 文件本身以utf-8格式保存。文件名是xx.txt 这是我的python代码,env是python2.7 这里有问题的是我没有结果。 我想从这里的十进制字符串中获得。 为什么此代码不起作用?谁能向我解释,我什么也没有。 问题答案: 您的代码有几个问题。首先,您应该使用。另外,添加re.UNICODE标志也很不错(尽