5

float と int のみを許可したい単純なテキスト入力があります (気を付けてください: jade)

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

ただし、機能しません。いつでも入力に任意の文字を挿入できます(何かを表示するためにさらに何かを行う必要がありますか?たとえば、間違っている場合は赤い境界線を表示しますか?または、それらの文字だけを入力することさえできません?) パターンは正規表現であるため、文字列ではありません。

コントローラーは次のとおりです。

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">
4

2 に答える 2