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

使用正则表达式验证角度模式

连德水
2023-03-14

我需要制作一个密码模式验证器

密码应具有:

    < li>1个大写字母 < li>1个小写字母 < li >一个号码 < li >最小长度为8。

我发现了这个正则表达式模式:

Validators.pattern('/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d!$%@#£€*?&]')

然而,验证器总是声称我的输入无效

errors:    
   pattern:
      actualValue: "Test1234"
      requiredPattern: "^/^(?=.*[A-Za-z])(?=.*d)[A-Za-zd!$%@#£€*?&]$"

根据 https://regex101.com/r/AfAdKp/1 此值应该是有效的。

编辑:澄清一下,Test1234应该可以工作

共有2个答案

阎德业
2023-03-14

您必须添加限定符[A-Za-z\d!$%@#€*?

Validators.pattern('^(?=.*[A-Z])(?=.*[a-z])(?=.*\\d)[A-Za-z\\d!$%@#£€*?&]{8,}$')

<代码>^(? =. *[A-Z])(? =.*[a-z])(? =.*\d)[A-Za-z\d! $%@#£€*?

  • ^ 字符串开头的断言位置
  • (?=.*[A-Z]) 正面的展望,以断言接下来是一个大写字符
  • (?=.*[a-z]) 正面的展望,以断言接下来是一个小写字符
  • (?=.*\d) 正面的展望,以断言接下来的内容是一个数字
  • [A-Za-z\d!$%@##€*?
const strings = [
  "A88888jf",
  "Aa88888jf",
  "Aa888jf",
  "AAAAAAAAAAA",
  "aaaaaaaaaaaaaa",
  "2222222222222222",
  "1sAdfe44",
  "$#fd#######"
];
let pattern = /^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)[A-Za-z\d!$%@#£€*?&]{8,}$/;

strings.forEach((s) => {
  console.log(s + " ==> " + pattern.test(s));
});

太叔栋
2023-03-14

您当前的正则表达式有多个问题:

  1. 您的正则表达式没有字符类的量词
  2. Validators.pattern不需要分隔符,但您在开始时抛出了一个
  3. 您应该加倍转义令牌。

你需要的是:

Validators.pattern('^(?=[^A-Z]*[A-Z])(?=[^a-z]*[a-z])(?=\\D*\\d)[A-Za-z\\d!$%@#£€*?&]{8,}$');

在此处查看实时演示

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

  • 我在angular中创建了一个表单,要求名称字段只包含字母数字字符和空格。为此,我使用了模式属性: 并且我有以下错误消息,我想在字符串不匹配时显示: 然而,即使字符串应该与正则表达式匹配,我仍然可以看到错误消息。有什么想法吗?

  • 在我的rails应用程序中,我想验证包含任意数量关键字的字符串字段上的输入(可以是多个自然语言单词(例如“文档编号”)。为了识别各个关键字,我输入它们,以“,”分隔(或以字符串结尾获取它们的结尾)。 为此我用 它应该允许属性关键字(字符串)包含:“word1、word2、word3 word4、word5-word6” 它不允许使用任何其他模式。e、 g.非“word1;word2;”它确实错误地

  • 我需要检查密码是否至少包含: 一个号码 一个小写字符 一个大写字符 一个特殊符号(.,@etc) 我在C#中有以下内容: 但这并不有效: 我错过了什么? 更新 我正在将其与系统.组件模型.数据注释一起使用来验证模型属性:

  • 主要内容:标签属性,JSF验证整数范围实例标签用于将字符串值验证为所需格式。 以下代码显示如何使用标记。 标签属性 属性 说明 pattern 格式化模式 JSF验证整数范围实例 打开 NetBeans IDE 创建一个Web工程:ValidateRegularExpression,其目录结构如下所示 - 创建以下文件代码,文件:index.xhtml 的代码内容如下所示 - 文件:result.xhtml 的代码内容如下所示 - 文件:

  • 我有以下用于javascript密码验证的正则表达式: 正则表达式规则是: 12-25个字符 至少有一个大写字母 至少有一个小写字母 至少有一个数字 至少有一个特殊字符:!#$%()*,-./:;=?@[]^ `{124;}~ 然而,正则表达式似乎不起作用。它匹配任何字符。我该怎么解决这个问题?