0

在使用 javascript 将信息发送到服务器之前,我正在尝试验证一个字符串。我想确保字符串长度为 9,并且它只包含数字。

顺便提一下,这个项目使用 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")

但它似乎没有正确验证。

如果我已经在问,我如何验证字符串只包含数字而不是从零位开始?

4

4 回答 4

3

您实际上不需要正则表达式。

你可以使用

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

编辑:回复塞缪尔的评论

MDN: isNaN()

MSDN:isNaN()

返回值

如果转换为 Number 类型的值是 NaN,则为 true,否则为 false。

于 2013-04-24T10:15:18.383 回答
0

使用正则表达式,它将检查仅包含 9 位数字且不以零开头的字符串。

var re = /^[1-9]\d{8}$/;
于 2013-04-24T10:17:15.263 回答
0

改变

if(validateID(id) == false )

if(validateID(id))

并将您的正则表达式更改为

var re = /^[1-9]\d{8}$/;
于 2013-04-24T10:18:13.183 回答
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>
于 2013-04-24T13:31:22.237 回答