AngularJS在评估正则表达式ng模式时出现问题

AngularJS problems evaluating regex ng-pattern

本文关键字:问题 模式 ng 评估 正则表达式 AngularJS      更新时间:2023-09-26

我在输入文本中使用ng-pattern参数将输入限制为数值:

<input type="text" ng-model="numericField" ng-pattern="/^[0-9]*$/" />

但是regex评估中有一个奇怪的行为:开始和结束空格被忽略。。。

因此,如果我插入这些值(例如),我会得到不同的结果:

' 123 '模式匹配

' 123 4343 '模式与不匹配

在我的例子中,空格是不允许的(在字符串的任何位置)。

更新我还需要解决允许字符值(即电子邮件)的其他输入的问题

那么我该如何解决这个问题呢?

为什么不直接使用:

<input type="number" ng-model="numericfield" />

html5行为是由angular在较旧的浏览器中实现的。

您可以将ng-trim="false"添加到输入文本中:

<input type="text" ng-model="numericField" ng-pattern="/^[0-9]*$/" ng-trim="false" />

看看这里