JavaScript正则表达式接受带有逗号分隔符(千)和点分隔符(小数)的数字
你们中有谁能帮我提供一个正则表达式,它可以接受以下内容: 每一千个逗号将被接受。 不少于4个小数点 我一直在测试此模式,但在某些情况下失败:JavaScript正则表达式接受带有逗号分隔符(千)和点分隔符(小数)的数字,javascript,regex,numbers,dart,range,Javascript,Regex,Numbers,Dart,Range,你们中有谁能帮我提供一个正则表达式,它可以接受以下内容: 每一千个逗号将被接受。 不少于4个小数点 我一直在测试此模式,但在某些情况下失败: ^\d+(\,\d+{1.3} \.d{1.4})*$ 有效输入: 1 11 111 1,111 1,111,111 1.1111 11.1111 111.1111 1,111.1111 Any letter 1,1 1.1 1.11 1,11.11 1,111.1 无效输入: 1 11 111 1,111 1,111,111 1.1111 11.1
^\d+(\,\d+{1.3} \.d{1.4})*$
有效输入:
1
11
111
1,111
1,111,111
1.1111
11.1111
111.1111
1,111.1111
Any letter
1,1
1.1
1.11
1,11.11
1,111.1
无效输入:
1
11
111
1,111
1,111,111
1.1111
11.1111
111.1111
1,111.1111
Any letter
1,1
1.1
1.11
1,11.11
1,111.1
主要标准是:
(小数点后4位为必填项)。
(千分之三的数字必须有逗号。)这比
/^\d\d?\d?(,\d\d\d)*(\.\d\d\d\d)?$/
或者如果你愿意的话
/^\d{1,3}(,\d{3})*(\.\d{4})?$/
这比你想象的更复杂吗
/^\d\d?\d?(,\d\d\d)*(\.\d\d\d\d)?$/
或者如果你愿意的话
/^\d{1,3}(,\d{3})*(\.\d{4})?$/
您询问之前搜索过吗?-->右侧的相关问题有您应该尝试的答案。这不清楚:
1.1
,1.11
和1111.1
似乎有效。数字中不超过4个小数点意味着可以有1到4个小数点。但是,在底部,您必须填写4个小数点。如果最后一个语句是正确的,您需要^(?:\d{1,3}(?:,\d{3})*\d+(:\。\d{4})$
或^\d{1,3}(?:,\d{3})*(?:\。\d{4})$
感谢您注意到Wiktor,我刚刚编辑了消息,应该不少于4个小数点。请尝试^\d{1,3}:,\d{4}。或^(?:\d{1,3}(?:,\d{3})*\d+(:\.\d{4})$
如果12334455767
相似的数字也必须匹配。一个数字不能有4个小数点:最多一个。我想你指的是十进制数字。但你也可能是说:要么根本没有十进制数字,要么至少有4个。你问之前搜索过吗?-->右侧的相关问题有您应该尝试的答案。这不清楚:1.1
,1.11
和1111.1
似乎有效。数字中不超过4个小数点意味着可以有1到4个小数点。但是,在底部,您必须填写4个小数点。如果最后一个语句是正确的,您需要^(?:\d{1,3}(?:,\d{3})*\d+(:\。\d{4})$
或^\d{1,3}(?:,\d{3})*(?:\。\d{4})$
感谢您注意到Wiktor,我刚刚编辑了消息,应该不少于4个小数点。请尝试^\d{1,3}:,\d{4}。或^(?:\d{1,3}(?:,\d{3})*\d+(:\.\d{4})$
如果12334455767
相似的数字也必须匹配。一个数字不能有4个小数点:最多一个。我想你指的是十进制数字。但你也可能是说:要么根本没有十进制数字,要么至少有4个。实际上我和OP没有确认它在工作。实际上我和OP没有确认它在工作。