如何获得使用NG模式

问题描述 投票:5回答:2

我有一个简单的文本输入,其中我只想让花车和整数(注意:玉)

input.form-control(type="text", ng-model='usd', ng-pattern="nums",ng-change='convert_to_btc()', placeholder="USD")

但是它不工作,我总是可以在输入插入任何字符(做我需要做的更多的是为了显示的东西吗?比如要输入一个红色的边框,如果是incorrrect?还是应该再只是这些字符甚至无法?)该模式是一个正则表达式,因此不是字符串,以使得要细???

这里的控制器:

app.controller("AppCtrl", function AppCtrl($scope, $http, $interval ) {
    //lots of other stuff
    $scope.nums = /^\-?\d+((\.|\,)\d+)?$/; //note no string, it's a  regex
}

这是生成的HTML。难道这是问题吗?生成的HTML实际上有一个字符串,而不是一个正则表达式!?

<input type="text" ng-model="usd" ng-pattern="/^\-?\d+((\.|\,)\d+)?$/" ng-change="convert_to_btc()" placeholder="USD" class="form-control ng-dirty ng-valid-parse ng-touched ng-invalid ng-invalid-pattern">
regex angularjs pug ng-pattern
2个回答
4
投票

我希望这是你正在尝试做的。

请看看下面的链接

http://plnkr.co/edit/BGzLbQHy0ZtHYmom8xA3

<!DOCTYPE html>
<html ng-app="">

<head>
 <script data-require="[email protected]" src="https://code.angularjs.org/1.3.13/angular.js" data-semver="1.3.13">      
 </script>
  <style>
    .ng-invalid-pattern {
      border:1px solid #f00;
    }
  </style>
</head>

<body>
  <p>Hello</p>

  <form name='myform'>      
    <input type="text" name='ip' ng-model="usd" ng-pattern="/^\-?\d+((\.|\,)\d+)?$/" 
  ng-change="convert_to_btc()" placeholder="USD"/>
    <p ng-show='myform.ip.$invalid'>Error</p>
  </form>


  </body>

</html>

1
投票

如果你想阻止能够进入字符/字母,只允许他们进入数字到用户输入,然后更改<input type="text"<input type="number"

下面是对角文档页面的链接上的投入应该只允许数字:input[number]

© www.soinside.com 2019 - 2024. All rights reserved.