Javascript 正则表达式验证带有小数点的数字范围

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-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})?$
对上述正则表达式的解释:

(?:[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)]]