Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular ng2货币掩码十进制输入点或逗号_Angular_Ionic Framework_Input_Pipe_Currency - Fatal编程技术网

Angular ng2货币掩码十进制输入点或逗号

Angular ng2货币掩码十进制输入点或逗号,angular,ionic-framework,input,pipe,currency,Angular,Ionic Framework,Input,Pipe,Currency,我想输入值,这是允许我像点或逗号符号,然后它将取代逗号只 我用的是currencymask 这是我的密码 payment-trans.page.html <ion-header no-border> <ion-toolbar> <ion-title> {{'idchecker.payment.paymentTrans.title' | translate}} </ion-title> </ion-tool

我想输入值,这是允许我像点或逗号符号,然后它将取代逗号只

我用的是currencymask

这是我的密码

payment-trans.page.html

<ion-header no-border>
  <ion-toolbar>
    <ion-title>
      {{'idchecker.payment.paymentTrans.title' | translate}}
    </ion-title>
  </ion-toolbar>
</ion-header>

<ion-content padding-horizontal>
  <div class="bar"></div>
  <div class="decription">
    <div class="sub-header">
      <h5>
        {{'idchecker.payment.paymentTrans.cardnr' | translate}} {{cnumber}}
      </h5>
    </div>
    <p text-wrap>
      {{'idchecker.payment.paymentTrans.text' | translate}}
    </p>
  </div>

  <div class="btns-holder">
    <form [formGroup]="form">
      <ion-item lines="none">
       <input currencyMask formControlName="amount" [textMask]="{mask:numberMask}" type ="text" placeholder="€  " />
    <!-- Test1   <input currencyMask formControlName="amount" type ="text" placeholder="€  " />-->

        <!-- test2 <input  formControlName="amount" (keyup)="onKeyUp($event)" type ="text" placeholder="€  " />-->

      </ion-item>

      <ion-button expand="block" (click)="proceed()" [disabled]="!form.valid">
        {{'idchecker.payment.paymentTrans.ok' | translate}}
      </ion-button>

      <ion-button expand="block" (click)="cancel()">
          Annuleren
        </ion-button>
    </form>
    </div>
</ion-content>
<ion-footer no-border>
    <ion-toolbar text-center>
      <ion-button fill="none" size="large" (click)="showMenu()">
          <ion-icon name="menu"></ion-icon>
      </ion-button>
    </ion-toolbar>
  </ion-footer>

{{'idchecker.payment.paymentTrans.title'| translate}}
{{'idchecker.payment.paymentTrans.cardnr'| translate}{{{cnumber}}

{{'idchecker.payment.paymentTrans.text'| translate}}

{{'idchecker.payment.paymentTrans.ok'| translate}} 环烯
payment-trans.page.ts

import {Component, OnInit} from '@angular/core';
import {BarcodeScanner} from '@ionic-native/barcode-scanner/ngx';
import {AlertController, ModalController, NavController} from '@ionic/angular';
import {ActivatedRoute} from '@angular/router';
import {BasePage} from '../shared/util/base.page';
import {createNumberMask} from 'text-mask-addons/dist/textMaskAddons';
import {FormBuilder, FormGroup, Validators} from "@angular/forms";
import {TranslateService} from '@ngx-translate/core';

@Component({
  selector: 'app-payment-trans',
  templateUrl: './payment-trans.page.html',
  styleUrls: ['./payment.page.scss'],
})
export class PaymentTransPage extends BasePage implements OnInit {

  amount: number;
  token: string;
  labels: any;
  public form: FormGroup;
//NUMBER_REGEXP = /^(\d+)(,\d{1,2}|\.\d{1,2})?€/;
 numberMask = createNumberMask({ prefix: '€  ' , thousandsSeparatorSymbol: '', allowDecimal: true, decimalSymbol: ',' });
//numberMask = createNumberMask({ prefix: '€  ' , thousandsSeparatorSymbol: '', allowDecimal: true,decimalSymbol: '.'  });

  constructor(modalCtrl: ModalController, private formBuilder: FormBuilder, private barcodeScanner: BarcodeScanner, private route: ActivatedRoute,
              private alertCtrl: AlertController, public navCtrl: NavController, private translateService: TranslateService) {
    super(modalCtrl);
    this.buildForm();
  }

  private buildForm() {

    this.form = this.formBuilder.group({
      amount: [null, [Validators.required]]
    });
  }

  ngOnInit() {
    this.cnumber = this.route.snapshot.paramMap.get('cnumber');
    this.translateService.get('idchecker.payment.paymentTrans').subscribe( res => {
      this.labels = res;
    });
  }

  async presentAlert() {
    const alert = await this.alertCtrl.create({
      header: this.labels.errorTitle,
      message: this.labels.errorMessage,
      mode: 'ios',
      buttons: [  {
        text: this.labels.askSupport,
        handler: () => {
          this.navCtrl.navigateRoot('support');
        }
      },
        {
          text: this.labels.again,
          role: 'cancel',
        }]
    });

    await alert.present();
  }

  proceed() {
    if (Number(this.form.get('amount').value.replace(',', '.').substring(1).trim()) < 0.01) {
      this.presentAlert();
      return;
    }
    this.navCtrl.navigateRoot('payment/confirm/' + this.cnumber + '/' + this.form.get('amount').value.substring(1).trim());
  }

  cancel() {
    this.navCtrl.navigateRoot('payment');
  }


       //const NUMBER_REGEXP = /^(\d+)(,\d{1,2}|\.\d{1,2})?€/;
    /* public onKeyUp(event: any) {
         let newValue = event.target.value;
         let regExp = new RegExp(this.NUMBER_REGEXP);

         if (!regExp.test(newValue)) {
           event.target.value = newValue.slice(0, -1);
         }
       }*/

}
从'@angular/core'导入{Component,OnInit};
从'@ionic native/barcode scanner/ngx'导入{BarcodeScanner};
从'@ionic/angular'导入{AlertController,ModalController,NavController};
从'@angular/router'导入{ActivatedRoute};
从“../shared/util/base.page”导入{BasePage};
从“文本掩码加载项/dist/textMaskAddons”导入{createNumberMask};
从“@angular/forms”导入{FormBuilder、FormGroup、Validators};
从'@ngx translate/core'导入{TranslateService};
@组成部分({
选择器:'应用程序支付交易',
templateUrl:“./payment trans.page.html”,
样式URL:['./payment.page.scss'],
})
导出类PaymentTransPage扩展BasePage实现OnInit{
金额:数字;
令牌:字符串;
标签:任何;
公共形式:FormGroup;
//数字\u REGEXP=/^(\d+)(,\d{1,2}\.\d{1,2})?€/;
numberMask=createNumberMask({前缀:'€',千位辅助符号:“”,allowDecimal:true,小数符号:'','});
//numberMask=createNumberMask({前缀:'€',千位辅助符号:“”,allowDecimal:true,小数符号:'.'});
构造函数(modalCtrl:ModalController,私有formBuilder:formBuilder,私有barcodeScanner:barcodeScanner,私有路由:ActivatedRoute,
专用alertCtrl:AlertController,公用navCtrl:NavController,专用translateService:translateService){
超级(modalCtrl);
这个.buildForm();
}
私有buildForm(){
this.form=this.formBuilder.group({
金额:[null,[需要验证程序]]
});
}
恩戈尼尼特(){
this.cnumber=this.route.snapshot.paramMap.get('cnumber');
this.translateService.get('idchecker.payment.paymentTrans').subscribe(res=>{
this.labels=res;
});
}
异步presentAlert(){
const alert=wait this.alertCtrl.create({
标题:this.labels.errorTitle,
消息:this.labels.errorMessage,
模式:“ios”,
按钮:[{
文本:this.labels.askSupport,
处理程序:()=>{
this.navCtrl.navigateRoot('support');
}
},
{
text:this.labels.再次,
角色:“取消”,
}]
});
等待警报。当前();
}
继续{
if(Number(this.form.get('amount').value.replace(',',').substring(1.trim())<0.01){
这个.presentAlert();
返回;
}
this.navCtrl.navigateRoot('payment/confirm/'+this.cnumber+'/'+this.form.get('amount').value.substring(1.trim());
}
取消{
此.navCtrl.navigateRoot(“付款”);
}
//常量数\u REGEXP=/^(\d+)(,\d{1,2}\.\d{1,2})?€/;
/*公共onKeyUp(事件:任何){
让newValue=event.target.value;
设regExp=newregexp(this.NUMBER\u regExp);
如果(!regExp.test(newValue)){
event.target.value=newValue.slice(0,-1);
}
}*/
}
测试-1在这个输入中,它只允许点取决于数字掩码,但点是默认值。我不能输入小数点

<input currencyMask formControlName="amount" [textMask]="{mask:numberMask}" type ="text" placeholder="€  " />
       

测试-2在这种情况下,两者都允许,但我不能像这样输入数字 e、 g 111.22-->结果(11.22)或20,11-->结果(0,11)



如何制作允许两个符号的货币格式管道?

是否有人可以解决此问题??
<input currencyMask formControlName="amount" type ="text" placeholder="€  " />