2015-12-01 308 views
2

使用的數字我有一個簡單,如果statment在檢查至少10個號碼校驗功能在外地只檢查輸入字段

function verfiyFields() { 
    var flag = true; 

    var number = $atj('#interested-number-form'); 


    if(number.val().replace(/\s+/g, '').length < 10){ 
     number.parent().prepend('<p class="form-error">Please enter phone number</p>'); 
     fadeOut(); 
     flag = false; 
    } 

    return flag; 
} 

我怎麼能同時檢查,只有數字用來使用。

+0

如果使用的是HTML5,爲什麼不使用 '輸入型=號' 屬性爲你的領域? – andrewdleach

+0

我需要能夠在 – ttmt

回答

3

您可以使用.match(/^\d+$/)來檢查是否只有數字。

var value = number.val().replace(/\s+/g, ''); 
if (value.length >= 10 && value.match(/^\d+$/)) { 
    // .. 
} 

您還可以檢查是否存在使用正則表達式/^\d{10,}$/至少爲10位,避免檢查length屬性:

var value = number.val().replace(/\s+/g, '') 
if (value.match(/^\d{10,}$/)) { 
    // .. 
} 

作爲一個側面說明,你也可以使用pattern attribute

<form> 
 
    <input type="text" pattern="^\d{10,}$" /> 
 
    <input type="submit" /> 
 
</form>

+0

中放置空格這些功能似乎都不適用於我。我用更多的代碼更新了問題 – ttmt

+0

@ttmt它在這裏工作 - http://jsfiddle.net/g0z2gw35/ –

+0

@ttmt您的標題意味着您正試圖檢查該字段是否僅包含*數字。你只是想計算數字的數量?喜歡這個? http://jsfiddle.net/yacka3zj/也許我誤解了這個問題.. –

0
function verfiyFields() { 
    var reg = /^\D*(?:\d\D*){10}$/; 
    var number = $atj('#interested-number-form'); 

    var flag = reg.test(number.val()) 

    if (!(flag)) { 
    number.parent().append('<p class="form-error">Please enter a valid 10 digit phone number</p>'); 
    } 

    return flag; 
} 

使用RegExp.test(STR)進行檢查,以確保該字段的排除不是數字的所有字符的長度是10 RegExp.test返回一個true或false值,這可能是你回來的國旗。

RegExp.test(STR)文檔

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test

演示: http://jsfiddle.net/SeanWessell/1v6vnath/