这是我的代码:
<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()">
,但没有运气。
答案 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范围
之间希望这有帮助!