テキストは数字だけが私はディレクティブ以下の作成しただけ
がそれです(私はテキストをコピーし、テキストボックスに貼り付けると、それが受け入れてますが受け入れない)のキーコードを使用して許可できるように、角度2でディレクティブを作成する方法置き換える使用すると、パターンが数字やテキスト
角度4ディレクティブを制限することが可能私は、パターンを使用してangularJSでディレクティブを作成し、
を交換しているimport {Directive,HostListener,HostBinding,Input ,Renderer,ElementRef} from '@angular/core'
@Directive({
selector: '[OnlyNumber]'
})
export class InputRestricter {
constructor(private el: ElementRef) { }
@Input() OnlyNumber: boolean;
@HostListener('keydown', ['$event']) onKeyDown(event:any) {
let e = <KeyboardEvent>event;
if (this.OnlyNumber) {
if ([46, 8, 9, 27, 13, 110, 190].indexOf(e.keyCode) !== -1 ||
// Allow: Ctrl+A
(e.keyCode === 65 && (e.ctrlKey || e.metaKey)) ||
// Allow: Ctrl+C
(e.keyCode === 67 && (e.ctrlKey || e.metaKey)) ||
// Allow: Ctrl+V
(e.keyCode === 86 && (e.ctrlKey || e.metaKey)) ||
// Allow: Ctrl+X
(e.keyCode === 88 && (e.ctrlKey || e.metaKey)) ||
// Allow: home, end, left, right
(e.keyCode >= 35 && e.keyCode <= 39)) {
// let it happen, don't do anything
return;
}
// Ensure that it is a number and stop the keypress
if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
e.preventDefault();
}
}
}
}
(stackoverflowのサイトから参照) 0
app.directive('test',function(){
return{
require:'ngModel',
restrict :'A',
link:function(scope,elm,attr,ngmodelctrl){
ngmodelctrl.$parsers.push(function(val){
// var clean=val.replace(/^(0*)/,'');
//var clean =val.replace(/[^0-9\.]/g,'')
var clean =val.replace(/[^a-zA-Z\.]/g,'')
ngmodelctrl.$setViewValue(clean);
ngmodelctrl.$render();
});
}
}
})
あなたは数値またはテキストのみを受け入れるように入力を検証する必要がある場合、私はテキストのみと別のを許可する2つのディレクティブは数字だけ