HTML表单邮箱正则表达式:如何支持域名中的非连续下划线
解决方案
修改后的正则表达式如下,已支持域名部分包含多个非连续下划线:
pattern="^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@(?!.*__)[a-zA-Z0-9](?:[a-zA-Z0-9-_]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-_]{0,61}[a-zA-Z0-9])?)+$"
修改说明
- 开放下划线权限:将原正则域名段中的
[a-zA-Z0-9-]替换为[a-zA-Z0-9-_],允许域名部分包含下划线字符。 - 限制连续下划线:在域名部分开头增加负向前瞻
(?!.*__),确保整个域名区域不会出现连续的下划线__,满足你需要的“多个非连续下划线”规则。 - 保留原有规范:维持了原正则对域名段首尾只能是字母/数字、每个段长度不超过63字符的约束,符合域名的基础格式要求。
验证示例
- 合法邮箱:
test_user@ex_am_ple.com、user-name@do_main.co.uk - 非法邮箱:
test@ex__ample.com(含连续下划线)、test@_example.com(域名段以下划线开头)、test@example_.com(域名段以下划线结尾)
内容的提问来源于stack exchange,提问作者Antarctica-UFO.com
相关产品推荐
相关产品推荐

