вот мой код:
<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()">
но не повезло.
Проблема заключается в регулярном выражении для проверки
var checkage = new RegExp("^[1-9]{1}+[0-9]{1}$");
это должно быть
var checkage = new RegExp("^[1-9]{1}[0-9]{1}$");
И вы можете использовать firebug для firefox (это бесплатное дополнение, которое вам очень помогает).
Хорошего дня.
/^[1-9][0-9]$/
... иметь {1}
бессмысленно
Проблема вашего кода - регулярное выражение проверки. Вместо этого:
var checkage = new RegExp("^[1-9]{1}+[0-9]{1}$");
Вы можете попробовать:
var checkage = new RegExp("/(^[1-9]?[0-9]{1}$|^100$)/");
Но IMHO, регулярное выражение - не лучший способ проверить возраст. Вы должны просто написать простую функцию, которая проверяет, находится ли число между 0 - 100 диапазоном
Надеюсь это поможет !