精华内容
下载资源
问答
  • 本文实例讲述了JS验证邮件地址格式方法。分享给大家供大家参考,具体如下: 示例1: 复制代码 代码如下:”txt_Email” runat=”server” xss=removed> function checkRate(input) { var re = /^[_".0-9a-z-]+@([0...
  • 主要介绍了js正则表达式验证邮件地址,利用javaScript语言实现一下电子邮件地址验证程序,使用的是JavaScript语言的正则表达式库,感兴趣的小伙伴们可以参考一下
  • 如何在JavaScript验证电子邮件地址

    千次阅读 2020-08-31 02:29:24
    Validation of an email address is one of the common operations ... 电子邮件地址验证是处理表单时的常见操作之一。 It’s useful in contact forms, signup and login forms, and much more. 在联系表格,...

    Validation of an email address is one of the common operations one does when processing a form.

    电子邮件地址的验证是处理表单时的常见操作之一。

    It’s useful in contact forms, signup and login forms, and much more.

    在联系表格,注册和登录表格等中很有用。

    Some people suggest that you should not validate emails at all. I think a little bit of validation, without trying to be over-zealous, is better.

    有人建议您完全不要验证电子邮件 。 我认为稍微验证一下会更好,但不要太过热情。

    电子邮件验证应遵循哪些规则? (What are the rules that email validation should follow?)

    An email address is composed by 2 parts the local part, and the domain part.

    电子邮件地址由本地部分和域部分两部分组成。

    The local part can contain

    本地部分可以包含

    • any alphanumeric character: a-zA-Z0-9

      任何字母数字字符: a-zA-Z0-9

    • punctuation: "(),:;<>@[\]

      标点符号: "(),:;<>@[\]

    • special characters: !#$%&'*+-/=?^_{|}~

      特殊字符: !#$%&'*+-/=?^_ {|}~

    • a dot ., if it’s not the first or last character. Also, it can’t be repeated

      一个点. ,如果不是第一个或最后一个字符。 另外,它不能重复

    The domain part can contain

    域部分可以包含

    • any alphanumeric character: a-zA-Z0-9

      任何字母数字字符: a-zA-Z0-9

    • the hyphen -, if it’s not the first or last character. It can be repeated

      连字符- ,如果不是第一个或最后一个字符。 可以重复

    使用正则表达式 (Use a Regex)

    The best option to validate an email address is by using a Regular Expression.

    验证电子邮件地址的最佳选择是使用正则表达式

    There is no universal email check regex. Everyone seems to use a different one, and most of the regex you find online will fail the most basic email scenarios, due to inaccuracy or to the fact that they do not calculate the newer domains introduced, or internationalized email addresses

    没有通用的电子邮件检查正则表达式。 每个人似乎使用的都是不同的,由于不准确或由于他们不计算引入的较新域或国际化的电子邮件地址,因此您在网上找到的大多数正则表达式将无法通过最基本的电子邮件方案

    Don’t use any regular expression blindly, but check it first.

    不要盲目使用任何正则表达式,而是先检查一下。

    I made this example on Glitch that will check a list of email addresses considered valid against a regex. You can change the regex and compare it with other ones you want to use.

    在Glitch上创建此示例,该示例将检查对正则表达式有效的电子邮件地址列表。 您可以更改正则表达式,并将其与您要使用的其他正则表达式进行比较。

    The one that’s currently added is the one I consider the most accurate I found, slightly edited to fix an issue with multiple dots.

    目前添加的是我认为最准确的一个,对其进行了稍微编辑以修正带有多个点的问题。

    Note: I did not came up with it. I found it in a Quora answer but I am not sure that was the original source.

    注意:我没有提出。 我在Quora答案中找到了它,但是我不确定那是原始来源。

    This is a function that validates using that regex:

    此函数可使用该正则表达式进行验证:

    const validate = (email) => {
      const expression = /(?!.*\.{2})^([a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+(\.[a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)*|"((([ \t]*\r\n)?[ \t]+)?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*(([ \t]*\r\n)?[ \t]+)?")@(([a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.)+([a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.?$/i
    
      return expression.test(String(email).toLowerCase())
    }

    All the common cases are satisfied, one can assume that 99.9% of the email addresses people will add are validated successfully.

    满足所有常见情况,可以假设人们将添加的99.9%的电子邮件地址已成功验证。

    The code of this glitch contains other regular expressions that you can easily try by remixing the project.

    该故障代码包含其他正则表达式,您可以通过重新混合项目轻松地尝试这些正则表达式。

    Although pretty accurate, there are a couple issues with some edge cases with this regex, which you can live with (or not) depending on your needs.

    尽管非常准确,但是此正则表达式在一些极端情况下存在一些问题,您可以根据需要使用(或不使用)这些正则表达式。

    False negative for weird addresses like

    错误的否定,例如奇怪的地址

    "very.(),:;<>[]".VERY."very@\ "very".unusual"@strange.example.com
    
    one."more\ long"@example.website.place

    False negative for local addresses:

    本地地址的假否定:

    admin@mailserver1
    user@localserver

    of little use in publicly accessible websites (actually a plus in publicly accessible websites to have those denied)

    在可公开访问的网站中使用很少(实际上,在可公开访问的网站中被拒绝的网站加号)

    Also, false negative for IP-based emails:

    此外,对于基于IP的电子邮件,为假阴性:

    user@[2001:DB8::1]
    user@128.0.0.1

    There is a false positive for addresses with the local part too long:

    对于本地部分时间过长的地址,存在误报:

    1234567890123456789012345678901234567890123456789012345678901234+x@example.com

    您想要更简单的正则表达式吗? (Do you want a simpler regex?)

    The above regex is very complicated, to the point I won’t even try to understand it. Regular expressions masters created it, and it spread through the Internet until I found it.

    上面的正则表达式非常复杂,以至于我什至不会尝试理解它。 正则表达式大师创建了它,并在Internet上传播,直到我找到它为止。

    Using it at this point is a matter of copy/pasting it.

    此时使用它只是复制/粘贴它。

    A much simpler solution is just to check that the address entered contains something, then an @ symbol, and then something else.

    一个简单得多的解决方案是检查输入的地址是否包含某些内容,然后是@符号,然后是其他内容。

    In this case, this regex will do the trick:

    在这种情况下,此正则表达式可以解决问题:

    const expression = /\S+@\S+/
    expression.test(String('my-email@test.com').toLowerCase())

    This will cause many false positives, but after all the ultimate test on an email address validity happens when you ask the user to click something in the email to confirm the address, and I’d rather try to send to an invalid email than reject a valid email because of an error in my regex.

    这将导致许多误报,但是在您要求用户单击电子邮件中的某些内容以确认地址时对电子邮件地址的有效性进行最终测试之后,我宁愿尝试发送给无效的电子邮件,也不要拒绝由于我的正则表达式中存在错误,因此电子邮件有效。

    This is listed in the above Glitch, so you can easily try it.

    这在上面的小故障中已列出,因此您可以轻松尝试。

    直接验证HTML字段 (Validate the HTML field directly)

    HTML5 provided us the email field type, so don’t forget you can also validate emails using that:

    HTML5为我们提供了email字段类型,所以请不要忘记您也可以使用以下方法来验证电子邮件:

    <input type="email" name="email" placeholder="Your email" />

    Depending on the browser implementation also this validation will give you different results.

    根据浏览器的实施方式,此验证也会为您提供不同的结果。

    This Glitch shows the same emails I tested the regex with, and their result when validated through the HTML form.

    这个故障显示了与我测试正则表达式相同的电子邮件,以及通过HTML表单验证后的结果。

    The results are interesting, and here as well we have invalid emails that pass, and valid emails that don’t. Our regex actually does a more accurate job than the HTML filtering built into the browser.

    结果很有趣,在这里,我们还有通过的无效电子邮件和没有通过的有效电子邮件。 实际上,我们的正则表达式比浏览器内置HTML过滤功能更准确。

    验证服务器端 (Validate server-side)

    If your app has a server, the server needs to validate the email as well, because you can never trust client code, and also JavaScript might be disabled on the user browser.

    如果您的应用程序具有服务器,则服务器也需要验证电子邮件,因为您永远无法信任客户端代码,并且用户浏览器上JavaScript可能已禁用。

    Using Node.js you have the advantage of being able to reuse the frontend code as-is. In this case the function that validates can work both client-side and server-side.

    使用Node.js,您可以直接重用前端代码。 在这种情况下,验证功能可以同时在客户端和服务器端工作。

    You can also use pre-made packages like isemail, but also in this case results vary. Here is the isemail benchmark on the same emails we used above: https://glitch.com/edit/#!/flavio-email-validation-node-isemail

    您还可以使用像isemail这样的预制软件包,但在这种情况下,结果也会有所不同。 这是我们上面使用的相同电子邮件的isemail基准: https ://glitch.com/edit/#!/flavio-email-validation-node-isemail

    翻译自: https://flaviocopes.com/how-to-validate-email-address-javascript/

    展开全文
  • 代码如下:[removed] function IsDigit(cCheck) { return ((‘0′<=cCheck) && (cCheck<=’9’)); } function IsAlpha(cCheck) { return (((‘a'<=cCheck) && (cCheck<=’z’)) || ((‘A'<...
  • 验证邮箱地址的有效性javascript

    千次阅读 2019-01-04 21:14:49
    function isEmail(email){ if (email=="") { alert("邮箱不能为空") ; } else if (email.split("...邮箱地址必须包含@和."); } else { let arr = email.split("@"
    function isEmail(email){
    	if (email=="") {
    		alert("邮箱不能为空") ;
    	} else if (email.split("@").length==1 || email.split(".").length==1) {
    		alert("邮箱地址必须包含@和.");
    	} else {
    		let arr = email.split("@") ;
    		alert("邮箱地址正确,邮箱名称是:"+arr[0]) ;
    	}
    }
    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title>验证邮箱地址</title>
    	</head>
    	<script type="text/javascript" src="验证邮箱地址.js"></script>
    	<body>
    		<input type="button" value="操我" onclick="isEmail(prompt('请输入正确的邮箱地址','suan@sohu.com'))" />
    	</body>
    </html>

     示例图:

     

    展开全文
  • 主要介绍了javascript验证邮件地址和MX记录的方法,涉及javascript正则验证的相关技巧,需要的朋友可以参考下
  • 对于我们做WEB开发的,对表单的验证是必不可少的,所以今天把常用的一些验证罗列出来,呵呵,今天下午刚学的JS正则表达式,有什么不足的地方还希望大家批评指正。 一.相关的代码 代码如下:function test() { var ...
  • JavaScript可用来在数据被送往服务器前对HTML表单中的这些输入数据进行验证
  • 但是使用了传统的js无刷新需要清空浏览器缓存后才能正常的验证所以自己就去用jquery 去写一个了无刷新验证 看看 代码如下:[removed]var ee;function mailbox(strEmail){var name=document.blooger[0].email.value;...
  • jq非空验证,为空的时候input后面加红色字体的用户名不能为空。 js正则表达式验证邮箱和手机号码,验证邮箱必须含有@符,手机号码必须1开头并且固定11个字符
  • 教你怎么正确使用邮箱地址验证代码 下面是一些常用的正则表达式: 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^\x00-\...
  • 来源 |http://www.fly63.com/如何使用JavaScript验证email的正确性?今天这个内容将做一个小小的总结,希望对你有所帮助。方式一:简单验证对于想要以以下形式...

    647af4ac84a38a11bd0e391a59005bb4.png

    来源 | http://www.fly63.com/

    如何使用JavaScript验证email的正确性?今天这个内容将做一个小小的总结,希望对你有所帮助。

    方式一:简单验证

    对于想要以以下形式进行真正简单验证的人

    
     
    fly63@email.com

    正则表达式:

    /\S+@\S+\.\S+/

    要防止匹配多个@ 符号(推荐使用):

    
     
    /^[^\s@]+@[^\s@]+\.[^\s@]+$/

    JavaScript 函数示例:

    
     
    function validateEmail(email) {
       var re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
       return re.test(email);
    }
    console.log(validateEmail(fly63@email.com'));

    这样能保证用户输入的邮箱没有明显的错误,绝大部分是正确的,而且效率是最高的。

    方式二:官网标准

    官方标准称为RFC 2822。它描述了有效电子邮件地址必须遵守的语法。使用这个正则表达式来实现它:

    
     
    (?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])

    如果我们省略使用双引号和方括号的语法,我们将获得更实用的 RFC 2822 实现。它仍然会匹配今天实际使用的所有电子邮件地址的 99.99%。

    
     
    [a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

    方式三:html5表单验证

    html5 本身具有电子邮件验证功能。如果您的浏览器支持 HTML5,那么您可以使用以下代码。

    
     
    <form>
      <input type="email" placeholder="me@example.com" required>
      <input type="submit">
    </form>

    只需检查输入的电子邮件地址是否有效或不使用 HTML,无需编写用于验证的函数。

    需要注意的是:存在浏览器兼容性。

    学习更多技能

    请点击下方公众号

    831ab0652bc7209162b2f56193ad654c.gif

    a5839510cbf6be53f6cc284b13cff7bb.png

    6aea3bc61a55657483e24b47151477f5.png

    展开全文
  • 验证邮箱格式是否正确的方法有很多,接下来为大家介绍下使用js是如何做到的
  • 邮箱正则最正宗的一条正则语句是^[a-z0-9]+([._-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$ 下面我们来讲解一下
  • 主要介绍了js和php邮箱地址验证的实现方法,有需要的朋友可以参考一下
  • 下面小编就为大家带来一篇JS非空验证邮箱验证的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 本文给大家分享JavaScript中的E-mail 地址格式验证,项目要求输入的数据必须包含@符号和点号。代码简单易懂,非常不错,具有参考借鉴价值,需要的朋友参考下吧
  • 主要介绍了JS正则验证多个邮箱的方法,且邮箱字符串使用分号隔开,非常简单实用,需要的朋友可以参考下
  • javascript的临时/一次性电子邮件地址验证器 使用带有Bower的Bower进行bower install temporary-email-address-validator或在此存储库中下载Disposable Email Validator javascript类。 例子 [removed][removed] ...
  • 2.给文本框添加失去焦点事件,失去焦点时,检测用户输入的邮箱地址是否符合规则 3.如果不符合规则,阻止程序向下执行并给出提示信息 4.符合规则则向服务器端发出请求,检测邮箱是否被注册过 5.根据服务器返回值决定...

    验证步骤:

    1.获取文本框和显示提示信息的元素
    2.给文本框添加失去焦点事件,失去焦点时,检测用户输入的邮箱地址是否符合规则
    3.如果不符合规则,阻止程序向下执行并给出提示信息
    4.符合规则则向服务器端发出请求,检测邮箱是否被注册过
    5.根据服务器返回值决定向客户显示何种信息

    email.html代码部分

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style>
            input {
                outline: none;
                height: 20px;
            }
    
            #info {
                padding: 10px 20px;
                width: 350px;
                color: #fff;
                text-align: center;
            }
    
            .bg-danger {
                background-color: rosybrown;
            }
    
            .bg-success {
                background-color: greenyellow;
            }
        </style>
    </head>
    
    <body>
        <div class="container">
            <div class="form-group">
                <label>邮箱地址</label>
                <input type="email" class="form-control" placeholder="请输入邮箱地址" id="email">
            </div>
            <p id="info"></p>
        </div>
        <!-- 引入封装好的ajax函数文件  -->
        <script src="./js/ajax.js"></script>
        <script>
            //获取页面中的元素
            var emailInp = document.getElementById('email');
            var info = document.getElementById('info');
            //给文本框添加离开焦点事件
            emailInp.onblur = function () {
                //获取用户输入的邮箱地址
                var email = this.value;
                //验证邮箱地址的正则表达式
                var reg = /^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/;
                //验证用户输入的邮箱是否正确
                //如果用户输入的邮箱地址不符合规则,阻止程序向下执行
                if (!reg.test(email)) {
                    info.innerHTML = '请输入正确的邮箱信息';
                    //让提示信息显示为错误提示信息的样式
                    info.className = 'bg-danger';
                    return;
                }
                //如果输入的邮箱地址正确
                //向服务器发送请求
                ajax({
                    type: 'get',
                    url: 'http://localhost:3000/emailAddress',
                    data: {
                        email: email
                    },
                    success: function (result) {
    					console.log(result);
    					info.innerHTML = result.message;
    					info.className = 'bg-success';
    				},
                    error: function (result) {
                        console.log(result);
                        info.innerHTML = result.message;
                        info.className = 'bg-danger';
                    }
                });
            }
        </script>
    </body>
    
    </html>
    

    app.js代码部分

    const express = require('express');
    // 路径处理模块
    const path = require('path');
    const app = express();
    // 静态资源访问服务功能
    app.use(express.static(path.join(__dirname, 'public')));
    // 邮箱地址验证
    app.get('/emailAddress',(req,res)=>{
        //接收用户传递过来的邮箱地址
        const email = req.query.email;
      
        //判断邮箱注册过的情况
        if(email == '1482434868@qq.com'){
            res.status(400).send({message:'邮箱地址已经注册过了,请更换其他邮箱地址'});
        }else{
            //邮箱可用的情况 对客户端做出响应
           res.send({message:'恭喜,邮箱可用'});
        }
    })
    app.listen(3000);
    console.log('服务器启动成功');
    

    链接的封装好的ajax函数代码

    function ajax (options) {
    	// 默认值
    	var defaults = {
    		type: 'get',
    		url: '',
    		async: true,
    		data: {},
    		header: {
    			'Content-Type': 'application/x-www-form-urlencoded'
    		},
    		success: function () {},
    		error: function () {}
    	}
    	// 使用用户传递的参数替换默认值参数
    	Object.assign(defaults, options);
    	// 创建ajax对象
    	var xhr = new XMLHttpRequest();
    	// 参数拼接变量
    	var params = '';
    	// 循环参数
    	for (var attr in defaults.data) {
    		// 参数拼接
    		params += attr + '=' + defaults.data[attr] + '&';
    		// 去掉参数中最后一个&
    		params = params.substr(0, params.length-1)
    	}
    	// 如果请求方式为get
    	if (defaults.type == 'get') {
    		// 将参数拼接在url地址的后面
    		defaults.url += '?' + params;
    	}
    
    	// 配置ajax请求
    	xhr.open(defaults.type, defaults.url, defaults.async);
    	// 如果请求方式为post
    	if (defaults.type == 'post') {
    		// 设置请求头
    		xhr.setRequestHeader('Content-Type', defaults.header['Content-Type']);
    		// 如果想服务器端传递的参数类型为json
    		if (defaults.header['Content-Type'] == 'application/json') {
    			// 将json对象转换为json字符串
    			xhr.send(JSON.stringify(defaults.data))
    		}else {
    			// 发送请求
    			xhr.send(params);
    		}
    	} else {
    		xhr.send();
    	}
    	// 请求加载完成
    	xhr.onload = function () {
    		// 获取服务器端返回数据的类型
    		var contentType = xhr.getResponseHeader('content-type');
    		// 获取服务器端返回的响应数据
    		var responseText = xhr.responseText;
    		// 如果服务器端返回的数据是json数据类型
    		if (contentType.includes('application/json')) {
    			// 将json字符串转换为json对象
    			responseText = JSON.parse(responseText);
    		}
    		// 如果请求成功
    		if (xhr.status == 200) {
    			// 调用成功回调函数, 并且将服务器端返回的结果传递给成功回调函数
    			defaults.success(responseText, xhr);
    		} else {
    			// 调用失败回调函数并且将xhr对象传递给回调函数
    			defaults.error(responseText, xhr);
    		} 
    	}
    	// 当网络中断时
    	xhr.onerror = function () {
    		// 调用失败回调函数并且将xhr对象传递给回调函数
    		defaults.error(xhr);
    	}
    }
    

    效果展示

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • js正则表达式 验证邮箱登入 #emailError { color: red; } [removed] = function() { /* 分析: 0.给提交按钮绑定时间 1.先获取 用户输入框的值 2.写正则表达式 3.用正则表达式...
  • 验证邮箱格式的JS

    2012-08-03 10:35:41
    验证邮箱格式的javaScript 希望可以帮助到你。
  • 下面小编就为大家带来一篇在js中实现邮箱格式的验证方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 81,003
精华内容 32,401
关键字:

验证邮件地址js