请帮助我编写货币/货币字段的JavaScript验证。
因此,如果您有:),请提供任何正则表达式
此外,对于我所在的地区,在字段中不需要任何像'$‘这样的货币符号。
只包含小数作为特殊字符,以及数字进行验证。
发布于 2010-02-09 07:33:35
您可以使用regexp:
var regex = /^\d+(?:\.\d{0,2})$/;
var numStr = "123.20";
if (regex.test(numStr))
alert("Number is valid");如果您希望对小数位不那么严格,您可能会发现使用一元(+)运算符将其转换为数字以检查其有效性比较容易:
var numStr = "123.20";
var numNum = +numStr; // gives 123.20如果数字字符串无效,它将返回NaN (而不是数字),您可以很容易地测试它:
var numStr = "ab123c";
var numNum = +numStr;
if (isNaN(numNum))
alert("numNum is not a number");当然,它将允许用户添加更多的小数位,但是您可以使用number.toFixed(2)将任何额外的小数位舍入到小数点后的2位。parseFloat对输入的要求要低得多,只要该字符串以数字开头,它就会从字符串中提取出第一个数字。parseFloat("123abc")会产生123。
发布于 2012-08-02 15:21:35
我根据公认的答案建立了我的答案。
var regex = /^[1-9]\d*(((,\d{3}){1})?(\.\d{0,2})?)$/;
^[1-9]这个数字必须以1-9开头
\d*这个数字可以有任意数字的任意数字
(...)$查看(...)$末尾的下一组
(...)?(...)?可选地查找两组。第一个是逗号,第二个是小数点。
(,\d{3}){1}查找一个逗号后面紧跟三个数字的出现
\.\d{0,2}查找一个小数,后面跟着零、一或两位数。
这个正则表达式是根据以下规则工作的:
- 1.2.3
- 1,2,4
这里可以看到一个例子:http://jsfiddle.net/rat141312/Jpxu6/1/
更新
通过将正则表达式中的[1-9]更改为[0-9],也可以验证小于1的任何数字。例子: 0.42,007
发布于 2010-02-09 07:18:01
/[1-9]\d*(?:\.\d{0,2})?/
[1-9] - must start with 1 to 9
\d* - any number of other digits
(?: )? - non capturing optional group
\. - a decimal point
\d{0,2} - 0 to 2 digits这对你有用吗?或者可能是parseFloat
var float = parseFloat( input );https://stackoverflow.com/questions/2227370
复制相似问题