[英]how to use multiple regular expressions in jquery?
I want validate an input form in jquery using regular expression. 我想使用正则表达式在jquery中验证输入表单。 I have used first regular expression variable to validate first name.
我已经使用第一个正则表达式变量来验证名字。 But I can't use any other regular expression to validate next input variable (lname, email).
但是我不能使用任何其他正则表达式来验证下一个输入变量(lname,email)。 When I use multiple regular expressions the jquery is not working.
当我使用多个正则表达式时,jQuery无法正常工作。
Here is my HTML code 这是我的HTML代码
<p>First Name:</p><input type="text" id="fname" placeholder="Enter your first name">
<span class= "error" id= "fnamelabel"></span>
<p class="formname">Last Name: </p><input type="text" name="lname" id="lname"class="forms" placeholder="Enter your Last name">
<span class="error" id="lnamelabel"></span>
<p class="formname">Address:</p><input type="text" name="address" id="address"class="forms" placeholder="Enter your address name">
<span class="error" id="addresslabel"></span>
<p class="formname">Email:</p><input type="text" name="email" id="email"class="forms" placeholder="Enter email address">
<span class="error" id="emaillabel"></span> // four input form
and here is my jquery code 这是我的jQuery代码
$('document').ready(function(){
$('#sub').click(function()
{
formvalidation();
});
function formvalidation()
{
var namef = $('#fname').val();
var namel= $('#lname').val();
var address = $('#address').val();
var email= $('#email').val();
var namexP =/^([a-zA-Z ])*/;
//var countryexP= /^([a-zA-Z]+([\s-][a-zA-Z]+)$/; //here i tried to declare a regular expression
//var emailxP = /^(\w+([0-9-+.']\w+)*+\@\w+\.([\a-z]{2,3})([.]\w+))$/;
////////validation for first name
if(namef=="")
{
$('#fnamelabel').text('Enter your first name.');
$('#fname').css("border","1px solid red");
}
else if(!namexP.test(namef))
{
$('#fnamelabel').text("Letters only.")
$('#fname').css("border","1px solid red");
}
else
{
$('#fnamelabel').text('');
$('#fname').css("border","default");
}
////////validation for Last name
if(namel=="")
{
$('#lname').css("border","1px solid red");
$('#lnamelabel').text('Please enter your last name name');
}
else if(!namexP.test(namel))
{
$('#lnamelabel').text("Letters only");
$('#lname').css("border","1px solid red");
}
else
{
$('#lname').css("border","default");
$('#lnamelabel').text('');
}
////////validation for Address
if(address == "")
{
$('#address').css("border","1px solid red");
$('#addresslabel').text('Please enter your address');
}
else
{
$('#address').css("border","default");
$('#addresslabel').text('');
}
//namexP= /^([a-zA-Z]+([\s-][a-zA-Z]+)$/;
if(email == "")
{
$('#email').css("border","1px solid red");
$('#emaillabel').text('Please enter your email');
}
//here I also tried to direct matching method
/*else if(email.!match(/^(\w+([0-9-+.']\w+)*+\@\w+\.([\a-z]{2,3})([.]\w+))/))
{
$('#email').css("border","1px solid red");
$('#emaillabel').text('Please enter a valid email address someone@____.com');
}*/
else
{
$('#email').css("border","default");
$('#emaillabel').text('');
}
return false;
});
All I have tried is not working. 我尝试过的所有方法均无效。 So Please help me.
所以请帮帮我。 Thank you.
谢谢。
The correct syntax is 正确的语法是
if (!email.match(<regexp>)) ...
not 不
if (email.!match(<regexp>)) ...
Actually, yo should use test
rather than match
if you just want to know if the match succeeds. 实际上,如果您只是想知道匹配是否成功,则应使用
test
而不是match
。
The problem is in your regular expression pattern which does validate the mail. 问题出在验证邮件的正则表达式模式中。
Use this pattern to validate your email address. 使用此模式来验证您的电子邮件地址。
var emailPattern = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
and validate your email like 并验证您的电子邮件,例如
else if(!emailPattern.test(email){
OR 要么
else if(!email.match(emailPattern))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.