Javascript 正则表达式验证带有小数点的数字范围
我只允许0-59之间的数字带有3位小数(小数是可选的)Javascript 正则表达式验证带有小数点的数字范围,javascript,regex,angular,angular-reactive-forms,Javascript,Regex,Angular,Angular Reactive Forms,我只允许0-59之间的数字带有3位小数(小数是可选的) ^([0-5]?[0-9])(?:\[0-9]{1,3})?$ ^([0-5]?[0-9])(\.\d{1,3})$ 我尝试创建这两个表达式,不幸的是,这两个表达式在表单验证中都返回无效,但在一些在线正则表达式验证程序中似乎有效 我使用角反应形式 感谢您的帮助 您可以使用下面的正则表达式来实现您的结果: ^(?:[1-4]?[0-9])(?:\.\d{1,3})?$|^[5]?[0-8](?:\.\d{1,3})?$|^59(\.0{1,3
^([0-5]?[0-9])(?:\[0-9]{1,3})?$
^([0-5]?[0-9])(\.\d{1,3})$
我尝试创建这两个表达式,不幸的是,这两个表达式在表单验证中都返回无效,但在一些在线正则表达式验证程序中似乎有效
我使用角反应形式
感谢您的帮助 您可以使用下面的正则表达式来实现您的结果:
^(?:[1-4]?[0-9])(?:\.\d{1,3})?$|^[5]?[0-8](?:\.\d{1,3})?$|^59(\.0{1,3})?$
对上述正则表达式的解释:
(?:[1-4]?[0-9])
表示与一位数或两位数匹配的非捕获组。注意:不允许使用0[0-9]
。如果希望允许使用诸如04
、05
等数字,请将类设置为[0-4]
(?:\。\d{1,3})
表示小数点后1到3位之间的可选小数点匹配
|
-表示替换
^[5]?[0-8](?:\.\d{1,3})$
-匹配从50
到58.999
的数字
^59(\.0{1,3})$
-假设您的最终限额为59
,则与数字59.000
匹配。如果您想允许59.
请删除此部分替换,并在上述部分中包括^[5]?[0-9]
您可以找到上述正则表达式的演示
以8种形式实施:
自;8个表单自动追加^
和$
;您可以从上面的正则表达式中省略它们
app.component.html(注意[pattern]=“digit”
)
您可以找到实时实施请访问,看看有什么和。做一些研究,搜索相关话题等;如果您陷入困境,请发布您的尝试,注意输入和预期输出,最好是在表单中。默认情况下,验证正则表达式是锚定的,因此您不需要
^
和$
。#2似乎起作用:是否有帮助?@Mandy8055:我想他们希望匹配从0.000
到59.999
,秒和毫秒,但也许我错了。
<input type="text" formControlName="digitCheck" class="form-control" [ngClass]="{ 'is-invalid': submitted && f.digitCheck.errors }" [pattern]="digit" />
<div *ngIf="submitted && f.digitCheck.errors" class="invalid-feedback">
digit="^(?:[1-4]?[0-9])(?:\\.\\d{1,3})?$|^[5]?[0-8](?:\\.\\d{1,3})?$|^59(\\.0{1,3})?$";
digitCheck: [null, [Validators.required, Validators.pattern(this.digit)]]