我想用一个空字符串替换所有非数字字符。我发现this solution
我试图在更改时替换输入元素的值。但是当我在上面使用时,直到我按一个数字,它才会替换。
我键入的每个非数字会一直停留到我键入数字
例如:2aaaaa将不会被替换。但是一旦键入2aaaa3
,它将替换所有的a并变为23
这是正常行为吗?我怎么能达到我的要求。
component.ts
mobileChanged = () => {
this.mobile = this.mobile.replace(/\D/g,'');
};
angular component.html
<input type="text" [(ngModel)]="mobile" (ngModelChange)="mobileChanged()">
答案 0 :(得分:0)
是的,这是ngModelChange
的常见行为,但似乎您需要在这里onkeyup
事件来替换非数字。像-
function mobileChanged() {
var txtinput = document.getElementById("fname");
var x = txtinput.value.replace(/\D/g,'');
txtinput.value = x;
}
<input id ="fname" type='text' onkeyup="mobileChanged()">
答案 1 :(得分:0)
您可以使用jQuery中的keyup
或Javascript中的onkeyup
。
$("document").ready(function() {
$("input").keyup(function() {
let v = this.value.replace(/\D/g, '');
this.value = v;
})
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" value="" />