正则表达式--QQ微信、优酷前端 邮箱正则表达式验证 Bug

简介: 但凡稍微有点资历的程序员,都免不了要写正则表达验证算法。最近见到好几个正则表达式的Bug,抽空写出来 拿邮箱验证来说,网上绝大部分人写的邮箱验证正则表达式代码都不能验证这邮箱

但凡稍微有点资历的程序员,都免不了要写正则表达验证算法。最近见到好几个正则表达式的Bug,抽空写出来


拿邮箱验证来说,网上绝大部分人写的邮箱验证正则表达式代码都不能验证这邮箱:

i@julying.com,也不能验证 xxxxxx@i.com

上次我发现youku.com(优酷网)用户注册就有这个问题,见图:

网络异常,图片无法展示
|

今天发现QQ微信 也同样有这个问题:

网络异常,图片无法展示
|

他们都不能验证一个字母的域名或一个字母的用户名。

我认为,他们绝不是故意不让这样的用户注册,而是这样:

很久之前,最初写正则的程序员偷懒了,没有写 这样情况的正则表达式验证,

他当时可能觉得这样的正则比较麻烦,而且可能这样的邮箱实在太少了,

没有听说一个字母的顶级域名提供邮箱服务,也没有见那个邮箱的用户名是一个字母的,于是就没写。

而后来的程序员就一直沿用这个代码。。。。。

-------------------

因为程序不能处理位置类型的数据,比如 2003年网络大面积爆发 SQL 注入,就是一个经典案例。

正如比尔盖茨前辈说:用户的所有输入都是有害的,程序员要尽可能的验证所有可能性,否则,漏掉的可能性就是一个潜在的危机。

-------------------

我顺便写一个完整的邮箱验证正则表达式吧,以后不要搞这种错误,让人很郁闷。。

PHP 邮箱验证正则表达式:

preg_match("/^[0-9a-zA-Z]+@(([0-9a-zA-Z]+)[.])+[a-z]{2,4}$/i",$email );

如果需要更加完善、严格的验证,修改这个正则表达式即可。

PHP 邮箱验证正则表达式 新手实例:

复制代码代码如下:

<?php

function isEmail($email){

if(preg_match("/^[0-9a-zA-Z]+@(([0-9a-zA-Z]+)[.])+[a-z]{2,4}$/i",$email )){

return '是邮箱';

} else{

return '不是邮箱';

}

}

?>

--------------------------------------------------------------------------------

Javascript(js) 邮箱验证正则表达式:

myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,4}$/;

这个可以验证 形如:i@julying.com ,i@i.com 这种邮箱

--------------------------------------------------------------------------------

Javascript(js) 邮箱验证正则表达式 新手实例:

复制代码代码如下:

<script type="text/javascript">

function isEmail(val){

var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,4}$/;

if(!myreg.test(val))

return '不是邮箱';

return '是邮箱';

};

alert( isEmail('i@julying.com') );

</script>

以上就是正则表达式--QQ微信、优酷前端 邮箱正则表达式验证 Bug 的详细内容,更多资料请关注米米素材网其它相关文章!

原文链接:https://www.mimisucai.com/teach/regexp/36330.html

目录
相关文章
|
7月前
|
Java 数据安全/隐私保护 计算机视觉
手机虚拟视频替换摄像头,QQ微信虚拟视频插件,jar代码分享
这段代码演示了如何使用JavaCV捕获视频流、处理帧数据并输出到虚拟摄像头设备。它需要JavaCV和OpenCV库支持
|
7月前
|
数据采集 安全 数据安全/隐私保护
微信加人要安全验证怎么回事
微信好友添加安全验证机制的技术解析 作为拥有12亿月活的国民级应用
|
API 数据库 Python
除了正则表达式,还有哪些方法可以验证用户输入数据的格式?
除了正则表达式,还有哪些方法可以验证用户输入数据的格式?
452 79
|
Dart 前端开发
【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
472 75
【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
JavaScript 前端开发 Java
如何使用这个正则表达式来验证一个字符串是否符合特定的格式要求?
如何使用这个正则表达式来验证一个字符串是否符合特定的格式要求?
|
8月前
|
数据安全/隐私保护
陌陌头像留V的最好方法,陌陌最新留QQ号技巧,陌陌动态最聪明的留微信
本资料分享社交平台隐秘留联系方式的方法,包含微信头像艺术化处理、二维码变形术,以及QQ号谐音替换、图片分割等技巧。
|
人工智能 开发框架 机器人
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
AstrBot 是一个开源的多平台聊天机器人及开发框架,支持多种大语言模型和消息平台,具备多轮对话、语音转文字等功能。
6519 38
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
|
11月前
|
小程序
【04】微信支付商户申请下户到配置完整流程-微信开放平台移动APP应用通过-微信商户继续申请-微信开户函-视频声明-以及对公打款验证-申请+配置完整流程-优雅草卓伊凡
【04】微信支付商户申请下户到配置完整流程-微信开放平台移动APP应用通过-微信商户继续申请-微信开户函-视频声明-以及对公打款验证-申请+配置完整流程-优雅草卓伊凡
795 1
【04】微信支付商户申请下户到配置完整流程-微信开放平台移动APP应用通过-微信商户继续申请-微信开户函-视频声明-以及对公打款验证-申请+配置完整流程-优雅草卓伊凡
|
12月前
|
人工智能 安全 机器人
LangBot:无缝集成到QQ、微信等消息平台的AI聊天机器人平台
LangBot 是一个开源的多模态即时聊天机器人平台,支持多种即时通信平台和大语言模型,具备多模态交互、插件扩展和Web管理面板等功能。
2408 14
LangBot:无缝集成到QQ、微信等消息平台的AI聊天机器人平台
|
监控 算法 测试技术
即时通讯技术文集(第45期):微信、QQ技术精华合集(Part2) [共14篇]
为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第45 期。
176 3