2025-3-28日更新
email="user@example.com"
if [[ "$email" =~ ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ ]]; then
echo "有效的电子邮件地址"
else
echo "无效的电子邮件地址"
fi
以下是旧的版本
首要说明
: 这是我们之前的一个项目的需求,可能跟大多数人的要求是不一致的
目标满足的验证逻辑:
@
之前必须有内容且只能是字母(大小写)、数字、下划线(_)、减号(-)、点(.)@
和最后一个.
之间必须有内容且只能是字母(大小写)、数字、点(.)、减号(-),且两个点不能紧挨着- 最后一个
.
之后必须有内容且内容只能是字母(大小写)、数字且长度为大于等于2个字节,小于等于6个字节`
邮箱验证的正则表达式:
^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$
说明 :只在Notepad++上通过搜索验证,其他的工具跟语言有待验证
测试例子:
不满足校验逻辑
:
# 441030517@QQ..com
# 119941779@qq,com
# 5579001QQ@.COM
# 1107531656@q?q?.com
# 654088115@@qq.com
# 495456580@qq@139.com
# 279985462@qq。com.cn
# chen@foxmail.com)m
# 2990814514@?£QQ.COM
# xxxxxxxxx@___.com.cn
# xxxxxxxxx@wwew_163sadasdf.com.cn
满足逻辑的
:
# xxxxxxx@163.com
# xxxxxxxxx@wwew-163.com.cn
# hjkjhk@645654.2121-6878.com.wcn