我正在验证一个角度的数字文本框。仅接受数字、单个逗号或单个点。字母和多个点或逗号无效。
我的正则表达式是这样的:
/d{1,}[,.]{0,1}d{0,}/
这里有一些匹配和不匹配的值:如果需要,https://regexr.com/3k4hl。
有效值:
1111
1.1111
111.111
111,11
1,1
1
无效值:
1d11e
1..1
1.,1
1,,1
111.11.1
1,111.11
但无论出于何种原因,角度文本框似乎认为除了一个空文本框之外,一切都是无效的。我很困惑为什么:
<input type="text" ng-model="idNumber" ng-pattern="customPattern" />
// in .js
$scope.customPattern = 'd{1,}[,.]{0,1}d{0,}';
还有什么需要补充的吗?
谢谢。
ps:我在角度 1.5x
在此处查看正在使用的正则表达式
^d+(?:[,.]d+)?$
-
^
在行首断言位置 -
d+
匹配一个或多个数字 -
(?:[,.]d+)?
可选匹配以下内容-
[,.]
匹配集合中的字符(,
或.
( -
d+
匹配一个或多个数字
-
-
$
断言行尾的位置
注释:
-
{1,}
与+
相同 -
{0,1}
与?
相同 -
{0,}
与*
相同