2016-12-15 4 views
0

スクリプトを修正するのを手伝ってください。数字だけを許可する方法は?

HTML:

<input type="text" ng-model="phone" id="phoneInput" ng-change="apt.changePhoneInput(phone)"> 

JS:

var app = angular.module('app', []); 
app.controller('Appctrl', Appctrl, '$scope'); 
function Appctrl($scope){ 
    this.changePhoneInput = function(phone) { 
    var result = phone; 
    console.log('phone', phone); 
    result.replace(/[^+0-9\(\)]/gim,''); 
    console.log('result', result); 
    $scope.phone = result; 
    }; 
} 

JSFIDDLE

私は数字のみを入力してシンボルを追跡できるようにしたいです: '+'、 '('、 ')' 、 ' - 'しかし、任意の記号文字を交換した後、あなたはresult変数への代入が欠落している

+0

HTML5のようにする必要があります数

変更後の
result=result.replace(/[^+0-9\(\)-]/gim,''); 

exceptsで? 'input type =" number "...>' – fnostro

+0

'+'と '-'をエスケープする必要があります。 '0-9'の代わりに' \ d'を使うことができます。 –

+0

これに代わって、 '' – fnostro

答えて

8

を、動作しません置き換える入力した後にすることは、コントローラが使用して

var app = angular.module('app', []); 
app.controller('Appctrl', Appctrl, '$scope'); 
function Appctrl($scope){ 
    this.changePhoneInput = function(phone) { 
    var result = phone; 
    console.log('phone', phone); 
    result=result.replace(/[^+0-9\(\)-]/gim,''); 
    console.log('result', result); 
    $scope.phone = result; 
    }; 
} 
関連する問題