2013-04-24 89 views
0

我試圖驗證一個字符串,然後我用javascript發送信息到服務器。我想確保字符串長度是9,並且它只包含數字。regularexpression只驗證數字字符串和長度

剛纔提到,這個項目使用jquery移動控件。

這是我的HTML控件:

<div data-role="content" style="text-align: center;"> 
       <div data-role="fieldcontain"> 
        <label for="Childid"> 
         Child ID</label> 
        <input id="childid" class="textBox" value="" type="text"/> 

        <label for="ChildfirstName"> 
         Child first name</label> 
        <input id="ChildfirstName" class="textBox" value="" type="text"/> 

        <label for="Childlastname"> 
         Child last name</label> 
        <input id="ChildlastName" class="textBox" value="" type="text"/> 

       <label for="Childmail"> 
         Child Mail</label> 
        <input id="ChildMail" class="textBox" value="" type="text"/> 
       </div> 

       <label for="Childbudget"> 
         Child monthly budget</label> 
        <input id="childmbudget" class="textBox" value="" type="text"/> 

也是我寫了這個功能:

function validateID(id) { 
    var re = /\d{9}/; 
    return re.test(id); 
} 

,並用它像這樣:

var id = $('#childid').val(); 

if(validateID(id) == false) 
    $("#fillthefields").popup("open") 

但它似乎沒有正確驗證。

如果我已經問過,如何驗證字符串只包含數字而不是以零數字開頭?

回答

3

實際上您並不需要正則表達式。

你可以使用

return (id.length === 9 && !isNaN(id)); 

編輯:在回答塞繆爾的評論

MDN: isNaN()

MSDN: isNaN()

返回值

如果轉換爲Number類型的值爲NaN,則爲true,否則爲false。

+0

你忘了'parseInt函數()''之前isNaN()' – 2013-04-24 10:15:58

+1

@SamuelLiew數轉換爲isNaN內部完成。編輯添加註釋。 – 2013-04-24 10:18:08

+1

下來選民可以解釋原因嗎? – 2013-04-24 10:20:00

0

使用正則表達式,它會檢查一個只包含9位數字的字符串,並且不以零開頭。

var re = /^[1-9]\d{8}$/; 
0

變化

if(validateID(id) == false) 

if(validateID(id)) 

,改變你的正則表達式來

var re = /^[1-9]\d{8}$/; 
0

會HTML5模式工作?

pattern="[0-9]{9}" 

位不能與零

pattern="[1-9]{1}[0-9]{8}" title="Please enter 9 digits, can not start with 0" 

實施例開始:

參考

HTML

<h1>A Simple HTML5 Form Validation</h1> 
<p>Leave the field empty and submit the form to see what happens.</p> 

<form> 
    <label for="name">* Name</label> 
    <input type="text" id="name" pattern="[0-9]{9}" title="Please enter 9 digits" required> 
    <input type="submit" value="Submit"> 
</form> 

<footer>Which browsers support this feature? - <a href=http://caniuse.com/form-validation>Caniuse.com</a></footer>