Javascript 正则表达式无法正常工作
Javascript Regular Expressions does not work properly
我正在尝试使用javascript验证电子邮件,但由于某种原因它不起作用。
问题:当我输入有效的电子邮件地址时,它仍然提醒我的地址有问题...
我在这里缺少什么?代码如下:
$(document).ready(function(){
$('.info').hide();
$('#button').click(function(){
var name = encodeURIComponent($('#name').val());
var email = encodeURIComponent($('#email').val());
var message = encodeURIComponent($('#message').val());
var reg = /^([a-zA-Z0-9_'.'-])+'@(([a-zA-Z0-9'-])+'.)+([a-zA-Z0-9]{2,4})+$/;
//if name is empty
if($('#name').val() == 0){
$('.info').html('<p style="font-weight:bold;text-align:center;font-size:20px;"> Molimo unesite Vaše ime!</p>').fadeIn(1000);
}
//if name is less than three characters
else if(name.length < 3){
$('.info').html('<p style="font-weight:bold;text-align:center;font-size:20px;"> Molimo unesite ime duže od tri slova!</p>').fadeIn(1000);
}
// if email is empty
if ($('#email').val() == 0){
$('.info').html('<p style="font-weight:bold;text-align:center;font-size:20px;"> Molimo unesite Email!</p>').fadeIn(1000);
}
// if email AND name are empty
if($('#email').val() == 0 && $('#name').val() == 0 ){
$('.info').html('<p style="font-weight:bold;text-align:center;font-size:20px;"> Molimo unesite Email!<br/>Molimo unesite ime!</p>').fadeIn(1000);
}
//if mail adress is NOT valid
if(reg.test(email)==false){
//alert('please enter valid mail!');
$('.info').html('<p style="font-weight:bold;text-align:center;font-size:20px;">Molimo unesite ispravan Mail!</p>').fadeIn(1000);
}
//if mail adress IS VALID (this is not working...)
if($('#name')!= '' && reg.test(email) !=false ){
//alert(data);
var data = 'name=' + name + '&email=' + email + '&message=' + message;
$.ajax({
type:"POST",
url:'kontakt2.php',
cache:'false',//IE FIX
data: data,
success: function(){
//alert('THX for your mail!');
} //end sucess
});
} //end if statment for VALID mail
//return false prevent Redirection
return false;
});
});
行
if($('#name')!= '' && reg.test(email) !=false )
应该是
if($('#name').val()!= '' && reg.test(email) !=false )
(或只是if (name != '' && reg.test(email) != false )
)
在此
语句中,您正在检查输入值是否为 0。 这不是检查空字段的方法:
if ( $('#name').val() == 0 )
稍微好一点的方法是:
if ( !$('#name').val() )
我设法通过修改此代码来解决此问题:
if($('#name').val()!= '' && reg.test(email) !=false )
进入这个:
if(reg.test($('#email').val()) && $('#name').val()!='')
我很确定上面的代码 reg.test(电子邮件) 部分不起作用,因为 encodeURIComponent。谢谢鲁道夫和尖头的回答:)
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- JS可以在Chrome中工作,但不能在Firefox中工作
- 最大高度转换不;不工作,工作缓慢
- Gulp-rev:不是第一次工作,而是在第一次工作之后工作
- JQuery - Ajax: encodeUriComponent不工作(EncodeUri工作)