2016-01-24 27 views
1

如何檢查輸入的文本是否是數字,並且在JavaScript中有九個字符?如何檢查數字和九個字符?

Intengo使用下面的代碼,但顯示正確。

function numberValidate(idtelf){ 
    var number = document.getElementById('idtelf'); 

    var charactersLength = number.value.length; 
    if(isNaN(number) || charactersLength !=9 ) 
    { 
     alert( "Enter a valid number "); 
    } 
    else { 
      alert( "correct"); 
     } 
}; 
+0

我會建議使用jQuery驗證庫。 – Oisin

+4

@Oisin號jQuery對於每個問題都不是一個神奇的解決方案。 –

+1

這不起作用?它出什麼問題了? –

回答

0

嘗試這樣

if(isNaN(number.value) || charactersLength !=9) 

,而不是這個

if(isNaN(number) || charactersLength !=9 ) 
+0

我建議'trim'處理數字爲float的情況(例如,如何處理這個'1234567.9'?) 。 –

+0

這仍然接受「123456」(最後3個空格) – Gavriel

2

這其中還檢查它是否是一個數字。其他答案也會接受「123456」(最後3個空格)。

function numberValidate(idtelf){ 
    var input = document.getElementById('idtelf'); 

    var number = parseFloat(input.value); 
    var charactersLength = input.value.length; 
    var numberLength = (""+number).length; 
    if(isNaN(number) || charactersLength !=9 || numberLength !=9) 
    { 
     alert( "Enter a valid number "); 
    } 
    else { 
      alert( "correct"); 
     } 
}; 

如果數量can'n被浴液從而代替parseFloat()使用parseInt函數()

+0

'parseInt'爲'123ad'返回正確的數字 – Grundy

+0

它返回123,但是然後我檢查(「」+ 123).length並返回3,而不是5,因爲所有其他的答案會(不談論它123ad是一個數字) – Gavriel

+0

所以,你的代碼返回_correct_爲'123456789asdasdasdasd',看起來這不好 – Grundy

1

您可以使用

HTML

<input id="idtelf"> 

Javscript

var number1 = document.getElementById('idtelf'); 

number1.onblur = function() { 
    var charactersLength = number1.value.replace(/\s/gi,"").length; 
    if(isNaN(number1.value) || charactersLength != 9) 
    { 
     alert("Enter a valid number ..."); 
    } 
    else { 
      alert("correct"); 
    } 
}; 

https://jsfiddle.net/rreyaovy/5/

+0

這個接受」123456「(最後3個空格) – Gavriel

1

嘗試this..This處理所有類型的輸入..

function numberValidate(idtelf){ 
    var input = document.getElementById('idtelf'); 

    var number = input.value.toString(); 
    var myString = number.replace(/\D/g,''); 
    if(number.length ==9 && number.length == myString.length) 
    { 
     alert( "Correct"); 
    } 
    else { 
      alert( "Enter a valid number"); 
     } 
}; 

Demo

+1

你遲到了8分鐘:)我有同樣的答案,有一些解釋 – Gavriel

+0

也許,但是你用了一些冗餘的toString() -s – Gavriel

+0

one more toString() – Gavriel

1

下面是一個使用一個簡單的正則表達式來測試是否該值是一個9的功能-數字。

function numberValidate(id){ 
    var number = document.getElementById(id).value, 
    regex = /^[0-9]{9}$/; 

    if (regex.test(number)) { 
    return true; 
    } else { 
    return false; 
    } 
}; 

我們可以使用這個功能是這樣的:

function numberValidate(id){ 
 
    var number = document.getElementById(id).value, 
 
    regex = /^[0-9]{9}$/; 
 

 
    if (regex.test(number)) { 
 
    return true; 
 
    alert(); 
 
    } else { 
 
    return false; 
 
    } 
 
}; 
 
     
 
var result1 = numberValidate('testNum1'); 
 
var result2 = numberValidate('testNum2'); 
 
var result3 = numberValidate('testNum3'); 
 
    
 
document.getElementById('result').innerHTML = 'Input 1: ' + result1 + '<br/>Input 2: ' + result2 + '<br/>Input 3: ' + result3;
<input id="testNum1" value="1234"> 
 
<input id="testNum2" value="123456789"> 
 
<input id="testNum3" value="1234567891011"> 
 

 
<div id="result"></div>

相關問題