带有千分离器的输入掩膜3

带有千分离器的输入掩膜3

问题描述:

我需要一个thousand separatorinput mask指令或Ionic 3应用程序。我已经尝试了2个指令。但他们都没有工作。你知道这个工作指令吗?带有千分离器的输入掩膜3

例如50,000

的.html

<ion-input type="tel" [ngModel]="data?.budget" formControlName="budget" (ngModelChange)="data.budget=$event"></ion-input> 

我对Git的登录问题。请参阅太:

text-mask Issue

ng2-currency-mask Issue

+0

你不能使用管道吗? –

+2

这是用于“输入框”的。我们不能在输入字段中使用'pipe'。它只是格式化已经存在的文本。我需要在用户在输入框中输入数字内容时对其进行格式化。 @TheDictator – Sampath

+1

我为我的格式化指令写了离子版的快速版本。你想看看还是喜欢图书馆? – Vega

这里是我的版本格式,太多的离子作品。

打字稿:

format(valString) { 
    if (!valString) { 
     return ''; 
    } 
    let val = valString.toString(); 
    const parts = this.unFormat(val).split(this.DECIMAL_SEPARATOR); 
    return parts[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, this.GROUP_SEPARATOR) + (!parts[1] ? '' : this.DECIMAL_SEPARATOR + parts[1]); 
}; 

unFormat(val) { 
    if (!val) { 
     return ''; 
    } 
    val = val.replace(/^0+/, ''); 

    if (this.GROUP_SEPARATOR === ',') { 
     return val.replace(/,/g, ''); 
    } else { 
     return val.replace(/\./g, ''); 
    } 
}; 

HTML:

<ion-input [(ngModel)]="budget" pattern="^[$\-\s]*[\d\,]*?([\.]\d{0,10})?\s*$" 
style="border:1px solid black" #myBudget="ngModel" (input)="budget = format(budget)"></ion-input> 
<p style="color:red" *ngIf="myBudget.errors && myBudget.errors?.pattern">Enter numbers only</p> 

它需要在错误管理和货币增加了一些改进(它接受领导 '$' 符号)。我将regexp设置为接受10位小数的数字。

DEMO

如果你希望没有小数,只有数字输入,这DEMO展示了如何。

+0

其实,我的情况很简单。我只需要像这样格式化:'50,000''没有小数'和'没有货币'。只有1000个分隔符。希望我能做到吗?你也可以展示这个样本吗?我不是很擅长'正则表达式'。希望你能帮到这里:) – Sampath

+0

看我的更新请 – Vega

+1

看起来真酷!希望你能改进这个作为Angular'directive'并将它作为Ionic社区的'MIT'项目发布。非常感谢你,祝你好运! :) – Sampath