Javascript 数值的正则表达式;最多小数点后3位
我正在尝试使用正则表达式验证表单,条件是:Javascript 数值的正则表达式;最多小数点后3位,javascript,regex,validation,Javascript,Regex,Validation,我正在尝试使用正则表达式验证表单,条件是: 它必须是一个数值 它最多可以有三位小数(也可以是0,1,2) 它必须被逗号(,)除 我已经使用HTML5模式实现了以下功能: pattern='\d+(,\d{1,3})?' 由于IE9不支持模式,我尝试使用js: var numPattern = /\d+(,\d{1,3})?/; if(!numPattern.test(menge.val())) { checkvalidate = false; } 我哪里出错了 例子 有效期:12
- 它必须是一个数值
- 它最多可以有三位小数(也可以是0,1,2)
- 它必须被逗号(,)除
pattern='\d+(,\d{1,3})?'
由于IE9不支持模式,我尝试使用js:
var numPattern = /\d+(,\d{1,3})?/;
if(!numPattern.test(menge.val()))
{
checkvalidate = false;
}
我哪里出错了
例子
有效期:1234;2,00 ; 5.0,1
无效:12345;2.00 ; 56a您需要以
^
开始正则表达式,以$
结束正则表达式,以确保整个输入字符串/行匹配
/^\d+(,\d{1,3})?$/
这是一个“演示”,其中所有示例都有效/无效:
(使用regex101.com调试正则表达式模式通常非常有用)
注意:(没有^
和$
)
但是:(使用^
和$
)
您可以使用此正则表达式:
/^\d+(?:,\d{1,3})*$/
您可以使用RegExp对象
var str = "123545,123";
var patt = new RegExp("/^(?:\d*\,\d{1,3}|\d+)$/");
var res = patt.test(str);
执行后,res将为true,因为str与您要查找的模式匹配,请尝试以下表达式:
\d+(,\d{3})*([.]\d{1,3})?
有效例子:
1,200.123
1,200.12
1,200.1
1.123
1,200,222
1,200,002
发布一些有效和无效的示例。如果要验证,可能需要在表达式开头添加
^
,在表达式末尾添加$
,以匹配整个字符串。
\d+(,\d{3})*([.]\d{1,3})?
1,200.123
1,200.12
1,200.1
1.123
1,200,222
1,200,002