在不必编写复杂的正则表达式的情况下尝试执行以下操作:
我只想要以下输入: 数字,逗号(,)和句点(。)
实施例
从上面的例子可以看出,所有3种类型的输入(数字,逗号和句号)不必同时存在,但这些是我想要允许的唯一3种类型的输入。不应该允许任何其他事情。
有人可以帮助,请提前谢谢。
答案 0 :(得分:1)
答案 1 :(得分:0)
亚历克斯的答案可以纠正为
/^[\d.,]+$/
但允许最多一个逗号(你似乎用作小数点),你可以写
/^[\d.]*,{0,1}\d*$/
答案 2 :(得分:0)
这是一个有趣的资源:http://regexlib.com/Search.aspx?k=amount
答案 3 :(得分:0)
此函数将返回数值或false,具体取决于第一个参数是否格式正确。可以省略dp参数(默认为'。'),'。',','或'?'在这种情况下,数字是针对dp ='。'进行测试的。或者dp =','。
function numberValue (n, dp) {
if ((dp = dp || '.') === '?') // check with dp = '.' or ','
return false === (dp = numberValue (n)) ? numberValue (n, ',') : dp;
var sep = dp === '.' ? /,/g : /\./g;
if ((n = n.split (dp)).length < 3 && // 0 or 1 decimal point
!sep.test (n[1] || '')) { // no separators after dp
n[0] = n[0].replace (sep, ''); // remove sep chars before dp
n = n[0] + (n[1] ? '.' + n[1] : '') // restore number using '.'
if (/^[-+]?(\d?\.\d+|\d+.\d*|\d+)$/.test (n)) // if number is correct
return +n; // return its value
}
return false; // return error flag;
}