js正则表达式匹配邮箱问题
// 少了一个结束符号 所以匹配到'1234565@qq.c'这一段就返回true了
// 下面加了结束符号$
/(^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+$)|(^$)/;
// 但还是 建议改成如下
/(^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+\.[a-zA-Z0-9_-]+$)|(^$)/;
怎样用正则表达式验证输入的邮箱,答对且详细者,我给高分!
你可以在客户端用JS判断,代码如下:
JS代码:
script. type="text/javascript"
function checkemail()
{
var temp = document.getElementById("email");
var myreg = /(\S)+[@]{1}(\S)+[.]{1}(\w)+/;
if(temp.value!="")
{
if(!myreg.test(temp.value))
{
document.getElementById("mail").innerHTML="请输入有效的email!";
document.getElementById("mail").style.color="red";
temp.value="";
temp.focus();
return false;
}
else{
document.getElementById("mail").innerHTML="email可以使用";
document.getElementById("mail").style.color="green";
}
}
}
/script
html如下:
这里我只写在body里面的代码:
邮箱地址:input id="email" name="email" nBlur="checkemail()" type="text" /span id="mail"/span
PHP正则表达式:一个匹配邮箱的正则表达式问题
尼玛,你这个正则前面那个怎么可能匹配得到?
我就说我看了那么久都看不出来你是怎么匹配到第一个的,
我这测了一下,瞎了我的眼啊。。
你自己看看:
?php
$mid_data="88-te----s--t@an-soncheung.t----k";
preg_match("/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/",$mid_data,$matched);
echo "ok:".$matched[0];
$mid_data1="88-te---s--t@an-------soncheung.t----k";
preg_match("/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/",$mid_data1,$matched);
echo "brok2:".$matched[0];
?
这是结果:
ok:t@an-soncheung.t
ok2:
_match("/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/",$mid_data,$matched); echo "ok:".$m