如何处理 Parsley.js 中数字的小数点和千位分隔符?

How handle decimal and thousands separators for numbers in Parsley.js?

我可以看到 Parsley.js 处理数字的英文分隔符。

当我将 Parsley 与西班牙数字一起使用时,它不起作用(例如:5,50 不是 Parsley 的有效数字,在我的国家逗号是我们的小数点分隔符)。

是否有一些配置可以改变它?

您需要创建符合您需要的必要正则表达式。一个(可能是基本的)正则表达式是 ^\d+(,\d+)?$,它匹配任何数字或带逗号的数字。

您甚至不需要创建 custom validator,因为 Parsley 允许您使用接收正则表达式的 data-parsley-pattern

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/parsley.js/2.0.7/parsley.min.js"></script>
<form data-parsley-validate>
  <input type="text" name="commaNumbers" data-parsley-pattern="^\d+(,\d+)?$" />
  <input type="submit" />
</form>

我知道已经晚了,但这个解决方案也对我有帮助。我只是 modified/changed 来自 Luis Cruz 代码的模式,以便该字段将处理小数位。 (例如 1,000,000,000.30)

希望这也能有所帮助。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/parsley.js/2.0.7/parsley.min.js"></script>
<form data-parsley-validate>
  <input type="text" name="commaNumbers" data-parsley-pattern="^-?(?:\d+|\d{1,3}(?:[\s\.,]\d{3})+)(?:[\.,]\d+)?$" required/>
  <input type="submit" />
</form>