2017-06-16 31 views
0

我有一個使用正則表達式的數字與浮點角2 + PrimeNG應用:依賴於語言環境的正則表達式(點或昏迷小數)

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

它非常適合於美國地區,但一些國家的對小數使用昏迷,所以模式不適合他們。

目前我正在考慮檢索組件代碼中的分隔符,並在那裏動態構造正則表達式。

問:如何處理區域依賴性正則表達式,以及這樣做的最佳/規範方法是什麼?

注意:我只需要在Chrome中工作,我只需要考慮瀏覽器區域設置。我正在使用browser-locale 1.0.2進行輸出。

+1

我不確定明白你想要什麼。它是否與點和昏迷匹配字符串?或匹配點或昏迷取決於當前定義的區域設置? – EoiFirst

回答

0

此正則表達式將匹配逗號或點串

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

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

如果你想匹配任何點或根據用戶定義的語言環境中的逗號,使用[0-9]*'[\.][0-9]匹配點,[0-9]*'[,][0-9]匹配逗號

編輯

我發現這一點:

<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個選項的開關:) –