2017-06-16 4 views
0

私は浮動小数点と番号の正規表現を使用して角度2 + PrimeNGアプリケーションがあります。ロケールに依存する正規表現(小数のドットまたは昏睡)

<input pInputText pattern="[0-9]*\.[0-9]" [(ngModel)]="someModel"/> 

それはしかし、USロケールのためによく国のいくつかの作品を小数には昏睡を使用してパターンがそれらに適していない。

現在、コンポーネントコード内のセパレータを取得し、そこで正規表現を動的に構築することを考えています。

Q:ロケール依存正規表現を処理する方法とそれを行うための最良の/標準的な方法は何ですか?

注:Chromeでのみ動作する必要があり、ブラウザのロケールのみを考慮する必要があります。出力にはbrowser-locale 1.0.2を使用しています。

+1

私はあなたが何をしたいのか分かりません。文字列をドットと昏睡と一致させることですか?または、定義されている現在のロケールに応じて、ドットOR昏睡にマッチしますか? – EoiFirst

答えて

0

あなたが一致するように、ユーザーの定義されたロケールに応じて、ドットまたはカンマのいずれかに一致する点に一致するよう[0-9]*'[\.][0-9]のいずれかを使用、[0-9]*'[,][0-9]したい場合は、この正規表現は、カンマやドット

[0-9]*'[\.,][0-9] 

https://regex101.com/r/hFnzW0/1

と文字列に一致します。コンマ

EDIT

私はこれを見つけた:これで

<label for="regex">Set a pattern (regex string): </label> 
<input type="text" ng-model="regex" id="regex" /> 

<label for="input">This input is restricted by the current pattern: </label> 
<input type="text" ng-model="model" id="input" name="input" ng-pattern="regex" /><br> 

あなたは#regexであなたのロケールに応じて、正規表現を定義し、あなたの200の他の入力のためにそれを使用することができます。このようにして、一度だけ定義します。

+0

はい、ロケールによってはドットまたはカンマのどちらかに一致する必要があり、ロケールによって異なるパターンを使用する必要があることは明らかです。しかし、問題はそれをどうやって行うのか? –

+0

私の編集を参照して、最高の解決策ではないかもしれませんが、それにつながる可能性があります – EoiFirst

+0

残念ながら、それはオプションではありません。私は包括的な解決策が必要です。これは200のオプションで 'switch 'を必要とします:) –

関連する問題