我想检查用户输入是否是JavaScript的电子邮件地址,然后将其发送到服务器或试图发送电子邮件,以防止最基本的误解。


当前回答

以下是 Regex 认证:

在 @ (-) 和 (.) 之前的空间字符不应该聚集在一起 之后 @ 没有特殊字符 之后 @ 2 字符 必须在 @ 电子邮件 长度 之前 应该 少于 128 字符 函数 验证 电子邮件(电子邮件) { var chrbeforAt = email.substr(0, email.indexOf('@')); 如果(!($.trim(电子邮件) 长度 > 127)) { 如果(chrbeforAt.length >= 2) { var re = /^([^<>()[\]{}'^?

其他回答

如果你得到这个错误:使用常规表达式是安全敏感的。

这个解决方案是免费的“定期表达拒绝服务(ReDoS)”

Regex 可验证无电子邮件(ReDoS):

/^[a-z0-9](?!.*?[^\na-z0-9]{2})[^\s@]+@[^\s@]+\.[^\s@]+[a-z0-9]$/

请告诉我这个解决方案是否适合你,谢谢。

Rnevius的(和同事)解决方案是辉煌的,但它允许添加Cyrillic,日本语,Emoticons和其他单码符号,一些服务器可能受到限制。

<unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk>

<unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk>

在我的情况下,我想避免 ~ 和 # 这就是为什么我使用了另一个解决方案:

function validEmail(email){
  const regex = /^((?!\.)[\w\-_.]*[^.])(@\w+)(\.\w+(\.\w+)?[^.\W])$/;
  return regex.test(email);
}

最好的做法是使用 HTML5 内置电子邮件标签。

<input type="email" name="email">

或常见的电子邮件合成作为识别 @ 和. 从字符串是下面的。

^[a-zA-Z0-9_\-.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-.]+$

请注意,这仍然会产生不合格的电子邮件,这将仍然符合规则,几乎不可能抓住他们所有,但这将改善情况一点。

下面是一个简单的 regex 会只是检查一个电子邮件的基本格式,例如,X@Y.C:

上一篇:S + S + S + S + S