【发布时间】:2019-04-01 08:01:11
【问题描述】:
我正在使用 React JS 创建一个应用程序。我有钱的输入字段。我只想接受带逗号的整数和双精度值。为此,我需要一个正则表达式。 例如,
1 没问题
2,5还可以
20,3 没问题
2.5不行。
35.65 不行
谁能帮我解决这个问题?
【问题讨论】:
标签: javascript regex reactjs
我正在使用 React JS 创建一个应用程序。我有钱的输入字段。我只想接受带逗号的整数和双精度值。为此,我需要一个正则表达式。 例如,
1 没问题
2,5还可以
20,3 没问题
2.5不行。
35.65 不行
谁能帮我解决这个问题?
【问题讨论】:
标签: javascript regex reactjs
你可以试试/^(?!\,)[\d\,]+(?<!\,)$/
地点:
^ 从字符串的开头开始
(?!\,) 确保它不会匹配
, 字面意思是在乞讨(否定前瞻)
\d 匹配一个数字(等于 [0-9])
\, 匹配字符 , 字面意思
+ 匹配一次到无限次
(?<!\,) 确保正则表达式不会匹配字符 , 的末尾字面意思(Negative Lookbehind)
$ 在字符串末尾断言位置
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,'));
【讨论】: