【问题标题】:To allow only one numeric value in text box based on regular expression in AngularJs基于AngularJs中的正则表达式在文本框中只允许一个数值
【发布时间】:2019-12-06 18:11:38
【问题描述】:

我正在使用ng-pattern

 <input type="text" ng-model="price" name="price_field" ng-pattern-restrict="/^[4]*$/" required only-digits>

请让我知道该怎么做,它不接受除 4 之外的任何其他数字。我正在使用仅数字的指令。

【问题讨论】:

  • 你的意思是/^4$/ 吗?为什么不在代码中检查 4?
  • 或使用/^4+$/ 1 次或多次 4

标签: html angularjs regex ng-pattern


【解决方案1】:

编辑:抱歉,错误的 Angular 版本 - 但如果您可以将其转换为 angularjs,它会起作用!

您可以在 HTML 输入元素中使用 (input) 事件

<input type="number" (input)="check($event)">

比在你的 ts 中你更清楚输入的价值

  check(event) {
    console.log(event);
    if (+event.data !== 4) {
      event.target.value = '';
    }
  }

【讨论】:

    【解决方案2】:

    您提到的模式不是有效的正则表达式模式。而不是尝试使用这个/^([4]){1}?$/希望你会得到它。

     <input type="text" ng-model="price" name="price_field" ng-pattern-restrict="/^([4]){1}?$/" required only-digits>
    

    【讨论】:

    • 但使用它验证消息不起作用不是有效数字!
    【解决方案3】:

    尝试使用以下限制模式:

    <input type="text" ng-model="price" name="price_field" ng-pattern-restrict="^[4]{1}?$" required only-digits>
    

    以及下面的验证消息:

    <div ng-messages="myForm.price_field.$error">
        <span ng-message="pattern">Not a valid number!</span>
    </div>
    

    【讨论】:

    • 感谢@hastaDhana 如何使用此无效数字!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    相关资源
    最近更新 更多