Angular 5 模式验证不适用于动态 react 形式

标签 angular typescript

我正在尝试使用具有正则表达式模式 ##.##.##.## 的 Angular react 形式来实现字段验证。对于某些模式,它不起作用。我尝试了以下输入 12.25.36.25 验证失败,测试了模式 (^\d{2}.\d{2}.\d{2}.\d{2 }$)regextester效果很好。我不确定这里出了什么问题。非常感谢任何帮助。

这是 StackBlitz .

最佳答案

原因是您忘记在 class question-base 中添加一个名为 pattern 的字段。 这是代码:

export class QuestionBase<T> {
  ...
  pattern: string;

  constructor(options: {
      ...
      pattern?: string
    } = {}) {
    ...
    this.pattern = options.pattern || null
  }
}

另一个问题是##.##.##.## 不是有效数字。您需要将该输入更改为 text 类型。最后,如果您的模式是正则表达式,则需要使用 javascript 的正则表达式类型而不是字符串。将您的模式替换为 /^\d{2}.\d{2}.\d{2}.\d{2}$/

编辑:模型的最终形式应该是:

new TextboxQuestion({
        key: 'version',
        label: 'Release Number',
        type: 'text',
        required: true,
        order: 4,
        pattern: /^\d{2}.\d{2}.\d{2}.\d{2}$/ // needed format: ##.##.##.##
 })

关于Angular 5 模式验证不适用于动态 react 形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53270758/

相关文章:

angular - 如何在菜单中显示用户名

javascript - 如何使用 ionic 4 动态添加带有谷歌地点的文本字段

visual-studio - "typescript intellisense"在我的 Razor View 中?

rest - Angular 6从rest api下载文件

angular - 有什么特别的吗?类型 'Node' 无法转换为类型 'ChildNode'

angular - 动态地将指令应用于来自服务器的 html 字符串

angular - 在苹果硅 ARM64 上运行的 Electron 应用程序

html - 如何在点击时动态添加类并在 2 秒后将其删除?

node.js - 如何创建服务于 Vue.js SPA 的 Node.js Express 应用程序?

javascript - Vue组件内的数组在登录控制台时有多个reactiveSetter和reactiveGetter方法