【问题标题】:Regex for numbers only (no spaces or special chars) using ng-pattern使用 ng-pattern 仅用于数字的正则表达式(无空格或特殊字符)
【发布时间】:2015-10-25 04:10:54
【问题描述】:

我有一个输入字段,只有当它只包含数字、没有特殊字符和空格时才有效。我在 Angular 中使用 ng-pattern 来验证输入。

我尝试过使用:

/^\d+$/

/^\d*$/

/^[0-9]+$/

这些可以防止特殊字符和字母,但对空格没有任何作用。有谁知道将空格视为无效字符的正则表达式?我试图避免使用 keyCode 阻止输入。

如果已经有这方面的主题,我深表歉意。我发现了许多类似的,但对空间没有任何帮助。

编辑: 即使正则表达式应该正常防止空格,它似乎也不适用于 ng-pattern:

<input type="tel" maxlength="10" ng-pattern="/^[0-9]+$/" placeholder="(1234567890)" />

如果我输入空格,仍然会在输入中返回 ng-valid-pattern 类。

【问题讨论】:

  • 你的正则表达式不允许允许空格。见regex101.com/r/nM1lY8/1
  • 有想过这个吗?我正在与类似的问题作斗争,我想这与 angulars ng-pattern 在输入前面存在空格时不返回 false 有关。我有一个 ng-pattern="/^\\+?[0-9]{6,29}$/" 但即使我以空格开始输入,它仍然显示为有效。

标签: javascript regex angularjs


【解决方案1】:

这个模式应该可以工作:/^\d+$/

【讨论】:

    【解决方案2】:

    尝试使用这种模式 /^[0-9]{0,}$/ https://regex101.com/r/bT2oO0/1

    【讨论】:

    • 它传递一个完全为空的字符串
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-23
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 2011-10-16
    • 1970-01-01
    • 2014-02-19
    相关资源
    最近更新 更多