使用正则匹配获取邮箱,使用正则匹配获取邮箱失败

hacker|
52

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:

1条大神的评论

  • avatar
    访客 2022-10-08 上午 12:01:43

    _match("/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/",$mid_data,$matched); echo "ok:".$m

发表评论