我正在使用React JS创建一个应用程序。我有输入金钱的字段。我只想接受整数和带逗号的双精度值。为此,我需要一个正则表达式。 例如,
1还可以
2,5还可以
20,3还可以
2.5不好。
35.65不好
有人可以帮我吗?
答案 0 :(得分:2)
您可以尝试/^(?!\,)[\d\,]+(?<!\,)$/
位置:
^
从字符串的开头开始
(?!\,)
确保不匹配
,
字面意思是( 负前瞻 )
\d
匹配一个数字(等于[0-9])
\,
从字面上匹配字符,
+
在一次和无限次之间进行匹配
(?<!\,)
确保正则表达式在字面末尾不会与字符,
匹配( 负向后看 )
$
声明字符串末尾的位置
var patt = /^(?!\,)[\d\,]+(?<!\,)$/;
console.log(patt.test('1'));
console.log(patt.test('2,5'));
console.log(patt.test('20,3'));
console.log(patt.test('2.5'));
console.log(patt.test('35.65'));
//The following shows no starting or trailing comma are allowed
console.log(patt.test(',123'));
console.log(patt.test('123,'));