我希望制作一个能够验证该字段的新功能但允许负数以及正数例如= / - 999.99。有人会有一个快速简便的解决方案。感谢
function validateNumber(thenumber){
try{
validnumbers = "0123456789.,";
valid = false;
for(i=0;i<thenumber.length;i++){
if (validnumbers.indexOf(thenumber.charAt(i)) == -1)
{
valid = false;
break;
}
else
valid = true;
}
return valid;
}catch(e){}
}
答案 0 :(得分:7)
这个简单的功能怎么样?
function validateNumber(thenumber)
{
thenumber = thenumber.replace(".", "").replace(",", ".");
return !isNaN(thenumber);
}
该函数删除点,然后用点替换逗号。然后它使用带有否定的isNaN
来返回它是否有效。如果thenumber
是字符串,您可能需要添加一项检查,以防止运行时错误。
答案 1 :(得分:2)
使用isNaN
function validateNumber(thenumber){
return !isNaN(thenumber);
}
对于正数和负数, isNaN
将返回false
答案 2 :(得分:1)
我认为更好的方法是使用常规表达式: search()方法使用表达式来搜索匹配,并返回匹配的位置(在其他情况下返回-1)。这是一个例子:
public function validNumber(number)
{
return number.search("^[+-]?[0-9]{1,9}(?:\.[0-9]{1,2})?$") > 0;
}
答案 3 :(得分:0)
试试这个:
function isNumber(value) {
value = value.replace(',', '.');
return !isNaN(value);
}
function isNegative(value) {
return (isNumber(value) && value<0);
}
function isPositive(value) {
return (isNumber(value) && value>0);
}
和奖金(:
function isNumberWithDots(value) {
value = value.split(',').join('').split('.').join('');
return !isNaN(value);
}
答案 4 :(得分:0)
试试这个表达式:
(number < 0)
首先尝试将左侧转换为数字值,然后通过JavaScript进行评估。
更多细节可以在这里找到:
相反,这个表达式:
(number > 0)
将以相同的方式由JavaScript进行评估。