regex - Angular 验证器模式正则表达式,用于匹配一个或另一个规则,但不能同时匹配两者
问题描述
我正在尝试将用户范围与这样的角度验证器匹配:
这个想法是将两个范围选项之一与角度模式验证器匹配:
1-99
或1,2,5,6,8
但不是两者(1-99,101,105,110)
兼而有之(1,3,5,6,7-15)
this.form = this.fb.group({
loads: ['', [Validators.required, Validators.pattern(/^\d+-\d+|\d+(?:,\d+)*$/)]],
notes: ['', Validators.required]
});
我尝试了一些解决方案,最接近的是这个,但它与它们都匹配。
解决方案
最后我找到了一个可行的解决方案:
Validators.pattern(/^\d+-\d+$|^\d+(?:,\d+)*$/)
我需要在 OR 的每个选项中开始和结束断言:
1,2,3,4,5-99 // not match
1-99,1,23,3,4,5 // not match
1-99 // matches
1,2,3,4,5 // matches
推荐阅读
- binary - 从 22 字节十六进制解码纬度和经度
- excel - 运行时错误“1004”:应用程序定义或对象定义错误 - 按日期过滤数据透视表对
- mysql - "join" 在这个位置无效,期待 EOF ,";"
- apache-spark - 如何对大型特征集进行主成分分析?
- python - NGROK 与 Python 和树莓派
- postfix-mta - 客户端主机被拒绝:找不到您的反向主机名
- web - 用于将用户发送到外部链接的网站队列按钮
- reactjs - 如何在 Antd-Calendar 中显示假期?
- python - 如何在 np.einsum 中执行此 np.tensordot 操作
- swift - 工具栏垫片在 3 面板设计中不起作用