使用javascript检查表单

时间:2014-03-20 16:23:23

标签: javascript html regex

这是我的代码:

<script>
    function check(){
        var error = '';
        var name = document.forms['form1'].name.value;
        var age = document.forms['form1'].age.value;

        var checkname = new RegExp("^[a-zA-Z]{3,}$");
        var checkage = new RegExp("^[1-9]{1}+[0-9]{1}$");

        if (!checkname.test(name)) error+= 'Blad w nameniu\n';
        if (!checkage.test(age)) error+= 'Blad w ageu\n';

        if (error == '')
            return true;
        else {
            alert(error);
            return false;
        }
    }
</script>
<form name="form1">
    <p>Name: <input type="text" name="name"></p>
    <p>Age: <input type="text" name="age"></p>
    <button type="button" onclick="check()">Send</button>
</form>

我不知道为什么给定的代码根本不起作用。完全没有动作。我尝试将<button>更改为<input type="sumbit"><form onSubmit="check()">,但没有运气。

Fiddle

2 个答案:

答案 0 :(得分:3)

问题是检查的正则表达式

var checkage = new RegExp("^[1-9]{1}+[0-9]{1}$");

这需要

 var checkage = new RegExp("^[1-9]{1}[0-9]{1}$");

你可以使用firebug for firefox(这是一个免费的附加组件,可以帮助你很多)。

祝你有个美好的一天。

答案 1 :(得分:0)

您的代码问题是检查正则表达式。而不是:

var checkage = new RegExp("^[1-9]{1}+[0-9]{1}$");

你可以尝试:

var checkage = new RegExp("/(^[1-9]?[0-9]{1}$|^100$)/");

但恕我直言,正则表达式不是验证年龄的好方法。你应该写一个简单的函数,检查数字是否介于0 - 100范围

之间

希望这有帮助!