Javascript:通过正则表达式和if/else语句验证表单字段
在我的程序中,我在表单中创建了表单和字段。我正在尝试验证字段。为此,我使用了正则表达式,虽然我的正则表达式是正确的,但手机正则表达式不执行。有人能告诉我我是否正确定义了验证的if/else语句吗 代码:Javascript:通过正则表达式和if/else语句验证表单字段,javascript,Javascript,在我的程序中,我在表单中创建了表单和字段。我正在尝试验证字段。为此,我使用了正则表达式,虽然我的正则表达式是正确的,但手机正则表达式不执行。有人能告诉我我是否正确定义了验证的if/else语句吗 代码: 函数validateForm(){ var zip=document.myform.zip; var email=document.myform.email; var phone=document.myform.phone; 如果(email.value==“”){ 提醒(“请输入电子邮件地址
函数validateForm(){
var zip=document.myform.zip;
var email=document.myform.email;
var phone=document.myform.phone;
如果(email.value==“”){
提醒(“请输入电子邮件地址”);
state.focus();
返回false;
}
var regEx2=/^[0-9]{5}(?:-[0-9]{4})$/;
if(zip.value.match(regEx2)){
返回true;
}否则{
window.alert(“请提供一个######或####-##格式的拉链。”);
zip.focus();
返回false;
}
var regEx=/^(?:\(\d{3}\)\s{124;\ d{3}-\d{3}-\d{4}$/;
if(phone.value.match(regEx)){
返回true;
}否则{
窗口提示(“请以(xxx)xxx xxxx格式输入电话号码。”);
phone.focus();
返回false;
}
}
拉链
电话号码
电子邮件
问题就在这里-
if (zip.value.match(regEx2)) {
return true;
} else {
window.alert("Please provide a zip in the ##### or #####-#### format.");
zip.focus();
return false;
}
无论zip是否有效,您都将从此点返回。之后的代码块将不会执行
我建议不要在每个成功的if块中返回,因为代码执行将从该点返回,而不验证其他字段
function validateForm() {
var valid = true;
var zip = document.myform.zip;
var email = document.myform.email;
var phone = document.myform.phone;
if (email.value == "")
{
window.alert("Please enter email Address.");
email.focus();
valid = false;
}
var regEx2 = \^[0-9]{5}(?:-[0-9]{4})?$\;
if(!zip.value.match(regEx2))
{
window.alert( "Please provide a zip in the ##### or #####-#### format." );
zip.focus() ;
valid = false;
}
var regEx = \^(?:\(\d{3}\)\s|\d{3}-)\d{3}-\d{4}$\;
if(!phone.value.match(regEx))
{
window.alert("Please enter Telephone number in (xxx) xxx-xxxx format.");
phone.focus();
valid = false;
}
return valid;
}
如果您真的希望仅在前面的所有字段都有效(作为当前代码)时验证一个字段,则此操作有效-
function validateForm() {
var zip = document.myform.zip;
var email = document.myform.email;
var phone = document.myform.phone;
if (email.value == "")
{
window.alert("Please enter email Address.");
email.focus();
return false;
}
var regEx2 = \^[0-9]{5}(?:-[0-9]{4})?$\;
if(!zip.value.match(regEx2))
{
window.alert( "Please provide a zip in the ##### or #####-#### format." );
zip.focus() ;
return false;
}
var regEx = \^(?:\(\d{3}\)\s|\d{3}-)\d{3}-\d{4}$\;
if(!phone.value.match(regEx))
{
window.alert("Please enter Telephone number in (xxx) xxx-xxxx format.");
phone.focus();
return false;
}
return true;
}
这是完整的脚本-
<!DOCTYPE html>
<html>
<head>
<title>NumerValidation</title>
</head>
<body>
<form name="myform" id="myform" action="" onsubmit="return validateForm();" method="post">
<table cellspacing="2" cellpadding="2" border="0">
<tr>
<td align="right">Zip</td>
<td><input type="text" name="zip" maxlength="15" size="28"/></td>
</tr>
<tr>
<td align="right">Telephone number</td>
<td><input type="text" name="phone" size="28" placeholder="(555) 555-5555"/></td>
</tr>
<tr>
<td align="right"> EMail </td>
<td> <input type="text" name="email" size="28" /></td>
</tr>
<tr>
<td align="right"></td>
<td><input type="submit" value="Submit"/> </td>
</tr>
</table>
</form>
<script>
function validateForm() {
var zip = document.myform.zip;
var email = document.myform.email;
var phone = document.myform.phone;
if (email.value == "")
{
window.alert("Please enter email Address.");
email.focus();
return false;
}
var regEx2 = /^[0-9]{5}(?:-[0-9]{4})?$/;
if(!zip.value.match(regEx2))
{
window.alert( "Please provide a zip in the ##### or #####-#### format." );
zip.focus() ;
return false;
}
var regEx = /^(?:\(\d{3}\)\s|\d{3}-)\d{3}-\d{4}$/;
if(!phone.value.match(regEx))
{
window.alert("Please enter Telephone number in (xxx) xxx-xxxx format.");
phone.focus();
return false;
}
return true;
}
</script>
</body>
</html>
数字验证
拉链
电话号码
电子邮件
函数validateForm(){
var zip=document.myform.zip;
var email=document.myform.email;
var phone=document.myform.phone;
如果(email.value==“”)
{
提醒(“请输入电子邮件地址”);
email.focus();
返回false;
}
var regEx2=/^[0-9]{5}(?:-[0-9]{4})$/;
如果(!zip.value.match(regEx2))
{
window.alert(“请提供一个######或####-##格式的拉链。”);
zip.focus();
返回false;
}
var regEx=/^(?:\(\d{3}\)\s{124;\ d{3}-\d{3}-\d{4}$/;
如果(!phone.value.match(regEx))
{
窗口提示(“请以(xxx)xxx xxxx格式输入电话号码。”);
phone.focus();
返回false;
}
返回true;
}
问题就在这里-
if (zip.value.match(regEx2)) {
return true;
} else {
window.alert("Please provide a zip in the ##### or #####-#### format.");
zip.focus();
return false;
}
无论zip是否有效,您都将从此点返回。之后的代码块将不会执行
我建议不要在每个成功的if块中返回,因为代码执行将从该点返回,而不验证其他字段
function validateForm() {
var valid = true;
var zip = document.myform.zip;
var email = document.myform.email;
var phone = document.myform.phone;
if (email.value == "")
{
window.alert("Please enter email Address.");
email.focus();
valid = false;
}
var regEx2 = \^[0-9]{5}(?:-[0-9]{4})?$\;
if(!zip.value.match(regEx2))
{
window.alert( "Please provide a zip in the ##### or #####-#### format." );
zip.focus() ;
valid = false;
}
var regEx = \^(?:\(\d{3}\)\s|\d{3}-)\d{3}-\d{4}$\;
if(!phone.value.match(regEx))
{
window.alert("Please enter Telephone number in (xxx) xxx-xxxx format.");
phone.focus();
valid = false;
}
return valid;
}
如果您真的希望仅在前面的所有字段都有效(作为当前代码)时验证一个字段,则此操作有效-
function validateForm() {
var zip = document.myform.zip;
var email = document.myform.email;
var phone = document.myform.phone;
if (email.value == "")
{
window.alert("Please enter email Address.");
email.focus();
return false;
}
var regEx2 = \^[0-9]{5}(?:-[0-9]{4})?$\;
if(!zip.value.match(regEx2))
{
window.alert( "Please provide a zip in the ##### or #####-#### format." );
zip.focus() ;
return false;
}
var regEx = \^(?:\(\d{3}\)\s|\d{3}-)\d{3}-\d{4}$\;
if(!phone.value.match(regEx))
{
window.alert("Please enter Telephone number in (xxx) xxx-xxxx format.");
phone.focus();
return false;
}
return true;
}
这是完整的脚本-
<!DOCTYPE html>
<html>
<head>
<title>NumerValidation</title>
</head>
<body>
<form name="myform" id="myform" action="" onsubmit="return validateForm();" method="post">
<table cellspacing="2" cellpadding="2" border="0">
<tr>
<td align="right">Zip</td>
<td><input type="text" name="zip" maxlength="15" size="28"/></td>
</tr>
<tr>
<td align="right">Telephone number</td>
<td><input type="text" name="phone" size="28" placeholder="(555) 555-5555"/></td>
</tr>
<tr>
<td align="right"> EMail </td>
<td> <input type="text" name="email" size="28" /></td>
</tr>
<tr>
<td align="right"></td>
<td><input type="submit" value="Submit"/> </td>
</tr>
</table>
</form>
<script>
function validateForm() {
var zip = document.myform.zip;
var email = document.myform.email;
var phone = document.myform.phone;
if (email.value == "")
{
window.alert("Please enter email Address.");
email.focus();
return false;
}
var regEx2 = /^[0-9]{5}(?:-[0-9]{4})?$/;
if(!zip.value.match(regEx2))
{
window.alert( "Please provide a zip in the ##### or #####-#### format." );
zip.focus() ;
return false;
}
var regEx = /^(?:\(\d{3}\)\s|\d{3}-)\d{3}-\d{4}$/;
if(!phone.value.match(regEx))
{
window.alert("Please enter Telephone number in (xxx) xxx-xxxx format.");
phone.focus();
return false;
}
return true;
}
</script>
</body>
</html>
数字验证
拉链
电话号码
电子邮件
函数validateForm(){
var zip=document.myform.zip;
var email=document.myform.email;
var phone=document.myform.phone;
如果(email.value==“”)
{
提醒(“请输入电子邮件地址”);
email.focus();
返回false;
}
var regEx2=/^[0-9]{5}(?:-[0-9]{4})$/;
如果(!zip.value.match(regEx2))
{
window.alert(“请提供一个######或####-##格式的拉链。”);
zip.focus();
返回false;
}
var regEx=/^(?:\(\d{3}\)\s{124;\ d{3}-\d{3}-\d{4}$/;
如果(!phone.value.match(regEx))
{
窗口提示(“请以(xxx)xxx xxxx格式输入电话号码。”);
phone.focus();
返回false;
}
返回true;
}
另一方面,即使第一次验证失败,您的代码也会进行不必要的正则表达式检查,在正则表达式匹配时不会中断执行。我的意思是,除非OP的目的是在电子邮件中显示三个警报,zip和phone的值都是invalid@shakhawat提交时,应显示任何空白字段或错误值的警报消息button@shakhawat我的代码没有检查电话字段。我的正则表达式是正确的,但我仍然不知道why@shakhawat我是否只需要添加一次return true?如果需要,我可以添加任意多个?另一方面,即使第一次验证失败,您的代码也会进行不必要的正则表达式检查,因为在正则表达式匹配时不会中断执行。我的意思是,除非OP的目的是在电子邮件中显示三个警报,zip和phone的值都是invalid@shakhawat提交时,应显示任何空白字段或错误值的警报消息button@shakhawat我的代码没有检查电话字段。我的正则表达式是正确的,但我仍然不知道why@shakhawat我是否只需要添加一次return true?如果我想的话,我可以加多少?