使用逗号或点对十进制数进行RegEx验证

时间:2011-10-25 08:28:11

标签: regex validation

如何使用一个RegEx验证此类数字输入。字符串是不允许的。点或逗号后面的两个小数位。

示例:

  

123.34
  1.22
  3,40
  134,12
  123

4 个答案:

答案 0 :(得分:10)

试试这个正则表达式:

/^(\d+(?:[\.\,]\d{2})?)$/

如果$1与输入字符串完全匹配,则假定它已经过验证。

答案 1 :(得分:3)

试试这个,

/^(\d+(?:[\.\,]\d{1,2})?)$/

答案 2 :(得分:2)

pat = re.compile('^\d+([\.,]\d\d)?$')
re.match(pat, '1212')
<_sre.SRE_Match object at 0x91014a0>
re.match(pat, '1212,1231')
None
re.match(pat, '1212,12')
<_sre.SRE_Match object at 0x91015a0>

答案 3 :(得分:1)

这是我用,.测试小数点的方法,该点在小数点或逗号后有两个小数位。

  1. (\d+):一位或多位数字
  2. (,\d{1,2}|\.\d{1,2})?:使用.,,后面最多两位小数

const regex = /^(\d+)(,\d{1,2}|\.\d{1,2})?$/;

console.log("0.55 returns " + regex.test('0.55')); //true
console.log("5 returns " + regex.test('5')); //true
console.log("10.5 returns " + regex.test('10.5')); //true
console.log("5425210,50 returns " + regex.test('5425210,50')); //true

console.log("");

console.log("10.555 returns " + regex.test('10.555')); //false
console.log("10, returns " + regex.test('10,')); //false
console.log("10. returns " + regex.test('10.')); //false
console.log("10,5.5 returns " + regex.test('10,5.5')); //false
console.log("10.5.5 returns " + regex.test('10.5.5')); //false