2010-12-08 43 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"; 
}