2017-09-22 3 views
0

に私は5-6種類の電話フォーマットを使用使用することができますAngular2 &のRegExpどのように値を配列に追加するか<string |正規表現> Angular2

角度2 https://github.com/text-mask/text-mask/

ドキュメント https://github.com/text-mask/text-mask/tree/master/angular2#readme

私の問題で使用されるこのパッケージに顔一つの問題を持っています

Like

  • (XXX)XXX XXXX

  • (XXX)XXX-XXXX

  • XXX-XXX-XXXX

  • XXX XXX XXXX
  • XXXXXXXXXX
  • XXXXX XXXXX

上記パッケージ使用アレイフォーマット

私はArray形式で

を追加することができますどのように私はこのコード

コード-1試すことができます

'(', /[1-9]/, /\d/, /\d/, ')', ' ', /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/ 

この形式の文字列を持っている:考える

var phoneFormat:Array<string | RegExp>; 
var format="'(','/[1-9]/','/\d/','/\d/',')',' ','/\d/','/\d/','/\d/',' ','/\d/','/\d/','/\d/','/\d/'"; 

     var ArrayObj=format.split(','); 

     for (var i = 0; i < ArrayObj.length; i++) { 
      phoneFormat.push(ArrayObj[i]); 
     } 

がエラー:

Error: Uncaught (in promise): TypeError: Cannot read property 'push' of undefined 
TypeError: Cannot read property 'push' of undefined 

コード-2

var format=['(','/[1-9]/','/\d/','/\d/',')',' ','/\d/','/\d/','/\d/',' ','/\d/','/\d/','/\d/','/\d/']; 
     phoneFormat=format; 

コード-2エラーなしでも

+1

'VARのphoneFormatを:アレイ<文字列| RegExp>; 'これは単なる型定義です。変数を初期化していません。 'var phoneFormat:Array Rajesh

+0

これも成功しません –

+0

クリーンなコメントセクションを作成し、非建設的なものをすべて削除します – Rajesh

答えて

0

ように動作していないマスキング次のエラーになっている、コメント:あなたは、配列を初期化していない、ので

TypeError: Cannot read property 'push' of undefined

を。

var phoneFormat:Array<string | RegExp>;は単なる型定義です。あなたは


var phoneFormat:Array<string | RegExp> = [];今すぐ

"'(','/[1-9]/','/\d/','/\d/',')',' ','/\d/','/\d/','/\d/',' ','/\d/','/\d/','/\d/','/\d/'" 

がフォーマットされた文字列の文字列で行う必要があります。だから、あなたがそれを分割すると、"'('"のようなストリング化された文字列しか得られません。

あなたはそれを解析する必要があります。以下のサンプルは役立ちます:

var phoneFormat: Array <string | RegExp> = []; 
 
var format = "'(','/[1-9]/','/\d/','/\d/',')',' ','/\d/','/\d/','/\d/',' ','/\d/','/\d/','/\d/','/\d/'"; 
 

 
format.split(',').forEach(function(value){ 
 
    if(value.startsWith('\'/')) { 
 
    phoneFormat.push(new RegExp(value.substring(2, value.length-2))); 
 
    } 
 
    else { 
 
    phoneFormat.push(value.substring(1, value.length-1)); 
 
    } 
 
}); 
 

 
console.log(phoneFormat)

+0

私はお待ちください。 –

+0

私は成功することができますが、 "d"チャーター(文字)タイプ:( –

+0

私は欲しい[0-9] number othre ASCII Charcterこれを行う方法を許可しますか? –

関連する問題