在 ng 模式上只允许使用带有单个逗号或句点的数字



我正在验证一个角度的数字文本框。仅接受数字、单个逗号或单个点。字母和多个点或逗号无效。

我的正则表达式是这样的:

/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,}*相同

最新更新