2012-08-12 134 views
0

我有一個JQuery函數,用於在文本輸入字段中顯示數量。非常簡單... 但是,這是一個法國的應用程序,我試圖建立一個法國數字格式的正則表達式(空間爲千位分隔符,逗號作爲小數點分隔符)。如何爲法語數字格式編寫正則表達式? (空格爲千位分隔符,逗號爲小數點分隔符)

我已經嘗試了幾種方法......最後一次嘗試是.replace(/(\d)(?=(?:\d{3})+(?:$))/g, '$1 ');,但它沒有空格作爲千​​位分隔符,也沒有逗號小數點分隔符。 在此先感謝您的幫助!

+1

您可以舉一個源/目標格式的例子,以便我們看到預期的行爲? – 2012-08-12 13:20:08

+0

當然Joachim! INPUT = 120500.55 OUTPUT = 120 500,55謝謝! – nadir 2012-08-12 13:55:48

回答

1

您可以反轉字符串,然後嘗試replace(/(\d{3})/g, "$1 ")然後再次反轉。這是一個jsFiddle

注:在小提琴使用的reverse方法是從this question

UPDATE

您可能必須先打破字符串轉換成整數和小數部分,進行上述改造,並用逗號把它重新結合在一起(如果需要)。它可能比你想要的更醜陋,但我想不出純粹的正則表達式解決方案。我相應地更新了jsFiddle。

+0

我想這不包括小數點分隔符。 – mhusaini 2012-08-12 13:44:34

+0

感謝這第一個答案mhusaini,但它不會給逗號作爲小數點分隔符+我敢肯定它可以有一些簡單的 – nadir 2012-08-12 13:53:59

+0

我已經更新了答案以解釋逗號作爲小數點分隔符。也許有一個更簡單的解決方案,但由於您需要捕獲多組三位數字,第一組長度可能少於三位數字,所以我發現很難想出一個可以完成所有這一切的單個正則表達式。 – mhusaini 2012-08-12 14:22:49

相關問題