2010-12-08 39 views
1

我需要检查,如果输入的号码包含在第一位小数JavaScript的众多验证

2.decimal后

1.更多的超过两位数(例如:0.2345)

3.decimal (例如:2345)

如何使用javascript进行此操作。

+0

一个NUMBER如何可以在前面的小数和结束?我想你的意思是询问有关字符串。 – 2010-12-08 13:37:20

+0

这是表单验证的一部分吗? – 2010-12-08 13:40:43

回答

2
len = number.length; 
pos = number.indexOf('.'); 

if (pos == 0) 
{ 
    //decimal is at first place 
} 
if (pos == len - 1) 
{ 
    //decimal is at last place 
} 
if (pos == len - 3) 
{ 
    //more than two digit after decimal 
} 
0
var number = "3.21"; 
if(/[0-9]{1,}\.[0-9]{2,}/.test(number)) { 
    //valid 
} 
+2

我认为`数字`应该是一个字符串在这里。除此之外,`.test()`是`RegExp`对象的一个​​方法。你应该使用`.match()`或修改你的代码,以便正则表达式在前面。 – jwueller 2010-12-08 13:38:56

+0

啊,是的,谢谢你指出。你只能在js中传递字符串的正则表达式吗? – 2010-12-08 13:43:53

+0

我不确定我是否明白你的意思,但`.match()`是`String`的一种方法。你可以用它来反过来:'“一些字符串”.match(/ some /)` – jwueller 2010-12-08 13:49:55

2
var reg = /\d+(?:\.\d{2,})?/; 

if (reg.test(number)) 
    alert('Correct format!'); 

不知道你是否会允许小数只(即无期限),但如果是正则表达式应该是足够的。

祝你好运。

1
function check_number(number) { 
    var my_number = String(number); 
    var place = my_number.indexOf("."); 
    if(place == 0) return "first"; 
    else if(place == (my_number.length - 1)) return "last"; 
    else if(place == (my_number.length - 3)) return "third to last"; 
}