首页 > 试题广场 >

邮箱字符串判断

[编程题]邮箱字符串判断
  • 热度指数:36821 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
判断输入是否是正确的邮箱格式

输入描述:
邮箱字符串


输出描述:
true表示格式正确
function isAvailableEmail(sEmail) {
    var reg=/^([\w+\.])+@\w+([.]\w+)+$/;
    return reg.test(sEmail);
}
发表于 2016-08-05 13:27:07 回复(0)

1.不限制长度

2.不限制大小写

3.邮箱开头必须是数字或字符串

4.邮箱中可以使用字母、数字、点号、下划线、减号,但是不能连写点号、下划线、减号,如 abc_-de@q_.q.com

5.@符号前后不能为点号、下划线、减号

function isAvailableEmail(sEmail) {
    var pattern = /^[\da-z]+[\w\.-]?[\da-z]+@[a-z\d]+[\w\.-]?[a-z\d]+\.[a-z\d]{2,}$/i;
    return pattern.test(sEmail);
}

发表于 2019-11-06 15:04:01 回复(2)
function isAvailableEmail(sEmail) {
    return /^\w+(\.\w+)*@\w+(\.\w+)+$/g.test(sEmail)
}
编辑于 2017-08-29 18:50:49 回复(1)
function isAvailableEmail(sEmail) {
    var reg = /^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/;
    return reg.test(sEmail);
}

发表于 2016-08-16 11:41:07 回复(7)
function isAvailableEmail(sEmail) {
    var reg = /^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i;
    return reg.test(sEmail);
}
发表于 2015-10-02 20:05:25 回复(3)
function isAvailableEmail(sEmail) {
    let reg = /^([\w+\.])+@\w+([.]\w+)+$/;
    return reg.test(sEmail);
}
 /^([\w+\.])+@\w+([.]\w+)+$/;
([\w+\.])+:等同于[a-zA-Z0-9_\.],也就是a-zA-Z0-9_.任意其中一个;
@: 匹配到@;
\w+: 一个或多个[a-zA-Z0-9_];
([.]\w+)+: 以点开头的,后跟一个或多个[a-zA-Z0-9_];
$: 结束符.

发表于 2022-03-26 17:25:09 回复(0)
function isAvailableEmail(sEmail) {
    let kk=/^\w+(\.\w+)*@\w+(\.\w+)+$/g;
    return kk.test(sEmail)
}
真是长见识了,邮箱有这么多种  

发表于 2021-09-16 11:10:42 回复(0)
var reg=/^([\w\.])+\@(([\w])+\.)+([\w]+)+$/;
//  参考别人的
邮箱的标准格式到底是什么??????

发表于 2016-08-02 12:21:39 回复(1)
function isAvailableEmail(sEmail) {
    var reg=/^([\w\.])+\@(([\w])+\.)+([\w]+)+$/;
    return reg.test(sEmail);
}
关键一点就是@前面的匹配,必须有\.匹配一下小数点!
发表于 2015-09-25 19:50:06 回复(4)
/^[a-z0-9_+.-]+\@([a-z0-9-]+\.)+[a-z0-9]{2,4}$/.test(“emailUrl”)

使用正则搞定!

发表于 2015-06-10 17:33:21 回复(0)
  知识点: 
  1. .  匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \. 。
  2.  [abc]: 匹配 a 或 b 或 c
正则: /^([\w+\.])+@\w+([.]\w+)+$/;

分析:
122_.123@qq.com.cm
([\w+\.])+:等同于[a-zA-Z0-9_\.],也就是a-zA-Z0-9_.任意其中一个就是匹配到的,所以不一定要有.;(理解中括号的正则) 例子中匹配到的部分:122_.123
@: 匹配到@
\w+: 一个或多个[a-zA-Z0-9_],例子中匹配的部分:qq(也就是以\w开头的,注意这里没有点)
([.]\w+)+: 以点开头的,后跟一个或多个[a-zA-Z0-9_]:例子匹配到的部分:.com、.cm
$: 结束符(懂的人:这是废话)

编辑于 2021-04-11 18:11:48 回复(0)
不用正则:
function isAvailableEmail(sEmail) {
    if (!sEmail.includes('@') || sEmail.includes(' ')) return false;
    const arr = sEmail.split('@');
    if (!arr[1].includes('.com')) {
        return false;
    } else {
        return true
    }
}


发表于 2022-06-28 14:54:46 回复(0)
咱就是想问问  有没有不用正则表达式的大佬
发表于 2022-05-23 12:18:08 回复(0)
function isAvailableEmail(sEmail) {
    return /^([\w+\.])+@\w+([.]\w+)+$/.test(sEmail);
}

分析:
122_.123@qq.com.cm
([\w+\.])+:等同于[a-zA-Z0-9_\.],也就是a-zA-Z0-9_.任意其中一个就是匹配到的,所以不一定要有.;(理解中括号的正则) 例子中匹配到的部分:122_.123
@: 匹配到@
\w+: 一个或多个[a-zA-Z0-9_],例子中匹配的部分:qq(也就是以\w开头的,注意这里没有点)
([.]\w+)+: 以点开头的,后跟一个或多个[a-zA-Z0-9_]:例子匹配到的部分:.com、.cm
$: 结束符(懂的人:这是废话)
发表于 2022-01-06 15:59:25 回复(0)

邮箱应该由四个部分组成
1.邮箱名
2.@
3.邮箱格式
4.'.com'

我这里写的仅保证@符号的唯一性,以及不出现空格,仅用于解题

        function isAvailableEmail(sEmail) {
            return sEmail.indexOf('@') === sEmail.lastIndexOf('@') && !sEmail.includes(' ')
        }
发表于 2023-09-10 16:20:03 回复(0)
function isAvailableEmail(sEmail) {
    return /^[\w\-\.]+@[a-z0-9]+(\-[a-z0-9]+)?(\.[a-z0-9]+(\-[a-z0-9]+)?)*\.[a-z]{2,4}$/i.test(sEmail)
}

发表于 2023-07-24 16:20:44 回复(0)
function isAvailableEmail(sEmail) {
    let reg=/^([\w\.])+@[\da-z\.-]+\.([a-z]+|[\u4E00-\u9FFF]+)$/
    return reg.test(sEmail);
}
发表于 2023-04-12 17:10:19 回复(0)
    function isAvailableEmail(sEmail) {
        var reg = /^[A-z0-9_.-]+@{1}[A-z0-9]+(.com){1}(.cn)?$/;
        return reg.test(sEmail);
    }

发表于 2022-10-13 17:01:10 回复(0)
正则的横向模糊匹配
比如:{m, n}  表示连续出现最少 m 次, 最多 n 次。/ab{2,5}c/表示匹配这样一个字符串:第一个字符是“a”,接下来是2到5个字符。/ab{2,5}c/g 表示全局匹配
纵向模糊匹配
比如[abc],表示该字符是可以字符“a”、“b”、“c”中的任何一个。
范围表示法
比如 [1-6a-fG-M]。用连字符-来省略和简写
排除字符串
例如[^abc],表示是一个除"a"、"b"、"c"之外的任意一个字符。字符组的第一位放^(脱字符),表示求反的概念
  • \d就是[0-9]。表示是一位数字(digitt)。\D就是[^0-9]。表示除数字外的任意字符
  • \w就是[0-9a-zA-Z_]。表示数字、大小写字母和下划线。记忆方式:w是word的简写,也称单词字符。\W[^0-9a-zA-Z_]。非单词字符
  • \s[ \t\v\n\r\f]。表示空白符,s是space character的首字母。\S[^ \t\v\n\r\f]。 非空白符。
  • .就是[^\n\r\u2028\u2029],都可以理解成占位符,表示任何类似的东西
function isAvailableEmail(sEmail) {
    // 正则表达式
    var reg = /^([\w+\.])+@\w+([.]\w+)+$/;
    return reg.test(sEmail);
}


发表于 2022-07-30 21:15:22 回复(0)
function isAvailableEmail(sEmail) {
    let reg = /^[\w\.]+@[\w\.]+\.[\w]+/;
    return reg.test(sEmail);
}

发表于 2022-07-24 12:31:00 回复(0)