У меня есть два регулярных выражения для 1 формы.один из них работает, другой нет.Чего мне не хватает? - PullRequest
0 голосов
/ 04 марта 2019

Я проверил оба выражения, и они оба работали.Теперь, просматривая весь код и вложения, я обнаружил, что регулярное выражение для почтового индекса не работает.(один для адресов электронной почты делает. Я попытался некоторое тестирование ошибок и, кажется, не могу найти, почему это не работает. Я приложил данные формы, от которых регулярное выражение должно взять ввод. Когда я отправляю форму, кажется,полностью обойти почтовое регулярное выражение. Наши почтовые индексы отформатированы как буквы, цифры, буквы (затем необязательный пробел или тире), за которыми следуют цифры, буквы, цифры.

 <table border="1">
				<tr>
					<td>
						First Name:<input name="fname" required="required" type="text"/><br />
						Last Name:<input name="lname" required="required" type="text" /><br />
						E-mail address:<input name="email" required="required" input type= "text"/><br />
						Postal Code:<input name="postal" required="required" type="text"/><br />
						<input type="submit" value="Join our Mailing List" onclick="return validate(this.form);"></input>
					</td>
				</tr>	
			</table>

Есть предложения?

	<script> 
			var validate = function(myform){
			var postal = myform.postal;
			var regex = /^([A-Za-z]\d[A-Za-z] -?\d[A-Za-z])\d$/i;
				if (!regex.test(postal.value))
					{
					alert("invalid postal code format");
					return false;
					}					
				return confirm("continue?");
					}	
		</script>
		<script> 
			var validate = function(myform){
			var myemail = myform.email;
			var regex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/i;
				if (!regex.test(myemail.value))
					{
					alert("invalid email format");
					return false;
					}
				return confirm("continue?");
				}
		</script>

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Вы сохраняете функцию для проверки формы в переменной validate.Вы назначаете две разные функции для этой переменной.Один для проверки почтового индекса, другой для проверки адреса электронной почты.

При назначении второй функции заменяется ссылка на первую функцию.Таким образом, будет выполнена только проверка адреса электронной почты.Включите обе проверки в одну и ту же функцию.

0 голосов
/ 04 марта 2019

Ваша проблема связана с дублированием определения функции validate.

<form>
<table border="1">
  <tr>
    <td>
        First Name:<input name="fname" required="required" type="text"/><br />
        Last Name:<input name="lname" required="required" type="text" /><br />
        E-mail address:<input name="email" required="required" input type= "text"/><br />
        Postal Code:<input name="postal" required="required" type="text"/><br />
        <input type="submit" value="Join our Mailing List" onclick="return validate(this.form);"></input>
    </td>
  </tr>	
</table>
</form>
<script> 
var validate = function(myform) {
var postal = myform.postal;
var regex = /^([A-Za-z]\d[A-Za-z] -?\d[A-Za-z])\d$/i;
if (!regex.test(postal.value)) {
    alert("invalid postal code format");
    return false;
}					

var myemail = myform.email;
var regex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/i;
if (!regex.test(myemail.value)) {
    alert("invalid email format");
    return false;
}
return confirm("continue?");
}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...