2012-08-12 147 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

相关问题