Home Web Front-end JS Tutorial Use regular expressions to filter email addresses/email addresses

Use regular expressions to filter email addresses/email addresses

May 24, 2018 am 10:13 AM
email expression Mail

This time I will bring you the regular expressionsto filter email mailboxes/email addresses and the precautionsto use regular expressions to filter email mailboxes/email addresses. The following are Let’s take a look at practical cases.

When doing user registration, regular expressions for email/email addresses are often used. This article lists several solutions. You can choose the most suitable solution according to your project situation

In short

When registering users, email is often used /Regular expression for email address. This article lists several options. You can choose the most suitable option according to your project situation.

Use regular expressions to filter email addresses/email addresses

Option 1 (Commonly used)

The rules are defined as follows:

  • in capital letters It starts with letters [A-Z], lowercase letters [a-z], numbers [0-9], underscore [_], minus sign [-] and period [.], and needs to be repeated one or more times [+].

  • The @ symbol must be included in the middle.

  • @After that, you need to connect uppercase letters [A-Z], lowercase letters [a-z], numbers [0-9], underscore [_], minus sign [-] and dot [ .], and needs to be repeated one or more times [+].

  • must end with a period [.] connecting 2 to 4 digits of uppercase and lowercase letters [A-Za-z]{2,4}.

Use the above rules to give the following regular expression:

var pattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
Copy after login

Complete test code

<!DOCTYPE HTML>
<html>
<head>
  <meta charset="utf-8">
  <title>邮箱/邮件地址的正则表达式及分析(JavaScript,email,regex)</title>
</head>
<body>
<p id="main"></p>
<script>
  var pattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
  w("pattern.test(&#39;cn42du@163.com&#39;) = "+pattern.test(&#39;cn42du@163.com&#39;)+";");
  w("pattern.test(&#39;ifat3@sina.com.cn&#39;) = "+pattern.test(&#39;ifat3@sina.com.cn&#39;)+";");
  w("pattern.test(&#39;ifat3.it@163.com&#39;) = "+pattern.test(&#39;ifat3.it@163.com&#39;)+";");
  w("pattern.test(&#39;ifat3_-.@42du.cn&#39;) = "+pattern.test(&#39;ifat3_-.@42du.cn&#39;)+";");
  w("pattern.test(&#39;ifat3@42du.online&#39;) = "+pattern.test(&#39;ifat3@42du.online&#39;)+";");
  w("pattern.test(&#39;毛三胖@42du.cn&#39;) = "+pattern.test(&#39;毛三胖@42du.cn&#39;)+";");
  function w(val) {
    document.getElementById("main").innerHTML += val +"<br />";
  }
</script>
</body>
</html>
Copy after login

Test result:

pattern.test(&#39;cn42du@163.com&#39;) = true;
pattern.test(&#39;ifat3@sina.com.cn&#39;) = true;
pattern.test(&#39;ifat3.it@163.com&#39;) = true;
pattern.test(&#39;ifat3_-.@42du.cn&#39;) = true;
pattern.test(&#39;ifat3@42du.online&#39;) = false;
pattern.test(&#39;毛三胖@42du.cn&#39;) = false;
pattern.test(&#39;cn42du@163.com&#39;) = true;
pattern.test(&#39;ifat3@sina.com.cn&#39;) = true;
pattern.test(&#39;ifat3.it@163.com&#39;) = true;
pattern.test(&#39;ifat3_-.@42du.cn&#39;) = true;
pattern.test(&#39;ifat3@42du.online&#39;) = false;
pattern.test(&#39;毛三胖@42du.cn&#39;) = false;
Copy after login

Description of Scheme 1

Scheme 1 is the most commonly used email regular expression verification scheme and is also suitable for most application scenarios. As can be seen from the above test, this expression does not support domain names ending in .online and .store. If you need to be compatible with this type of domain name (more than 4 digits), just adjust the restriction part at the end of the regular expression {2,4} (for example: {2,8}). Another problem is that email usernames cannot include Chinese characters.

Option 2 (revised option 1)

The rules are supplemented as follows:

  • The user name can include Chinese [\u4e00- \u9fa5]

  • The end of the domain name can be up to 8 digits{2,8}

  • The updated regular expression is as follows:

var pattern = /^([A-Za-z0-9_\-\.\u4e00-\u9fa5])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,8})$/;
Copy after login

Complete test code

<!DOCTYPE HTML>
<html>
<head>
  <meta charset="utf-8">
  <title>邮箱/邮件地址的正则表达式及分析(JavaScript,email,regex)</title>
</head>
<body>
<p id="main"></p>
<script>
  var pattern = /^([A-Za-z0-9_\-\.\u4e00-\u9fa5])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,8})$/;
  w("pattern.test(&#39;cn42du@163.com&#39;) = "+pattern.test(&#39;cn42du@163.com&#39;)+";");
  w("pattern.test(&#39;ifat3@sina.com.cn&#39;) = "+pattern.test(&#39;ifat3@sina.com.cn&#39;)+";");
  w("pattern.test(&#39;ifat3.it@163.com&#39;) = "+pattern.test(&#39;ifat3.it@163.com&#39;)+";");
  w("pattern.test(&#39;ifat3_-.@42du.cn&#39;) = "+pattern.test(&#39;ifat3_-.@42du.cn&#39;)+";");
  w("pattern.test(&#39;ifat3@42du.online&#39;) = "+pattern.test(&#39;ifat3@42du.online&#39;)+";");
  w("pattern.test(&#39;毛三胖@42du.cn&#39;) = "+pattern.test(&#39;毛三胖@42du.cn&#39;)+";");
  function w(val) {
    document.getElementById("main").innerHTML += val +"<br />";
  }
</script>
</body>
</html>
Copy after login

Test result:

pattern.test(&#39;cn42du@163.com&#39;) = true;
pattern.test(&#39;ifat3@sina.com.cn&#39;) = true;
pattern.test(&#39;ifat3.it@163.com&#39;) = true;
pattern.test(&#39;ifat3_-.@42du.cn&#39;) = true;
pattern.test(&#39;ifat3@42du.online&#39;) = true;
pattern.test(&#39;毛三胖@42du.cn&#39;) = true;
Copy after login

Option 3 (safety)

On mobile phone Before the verification code appeared, email verification was almost the only condition to ensure the uniqueness of the user. The emergence of temporary mailboxes (also called 10-minute mailboxes or disposable mailboxes) makes the mechanism of mailbox verification and account activation meaningless. The addresses of temporary email addresses are not enumerable. We can only use a whitelist to allow only a limited number of email domain names to pass verification.

According to the following supplementary rules in Option 1:

The email domain name can only be 163.com, qq.com or 42du.cn.
The regular expression is given as follows:

var pattern = /^([A-Za-z0-9_\-\.])+\@(163.com|qq.com|42du.cn)$/;
Copy after login

Complete test code

<!DOCTYPE HTML>
<html>
<head>
  <meta charset="utf-8">
  <title>邮箱/邮件地址的正则表达式及分析(JavaScript,email,regex)</title>
</head>
<body>
<p id="main"></p>
<script>
  var pattern = /^([A-Za-z0-9_\-\.])+\@(163.com|qq.com|42du.cn)$/;
  w("pattern.test(&#39;cn42du@163.com&#39;) = "+pattern.test(&#39;cn42du@163.com&#39;)+";");
  w("pattern.test(&#39;ifat3@sina.com.cn&#39;) = "+pattern.test(&#39;ifat3@sina.com.cn&#39;)+";");
  w("pattern.test(&#39;ifat3.it@163.com&#39;) = "+pattern.test(&#39;ifat3.it@163.com&#39;)+";");
  w("pattern.test(&#39;ifat3_-.@42du.cn&#39;) = "+pattern.test(&#39;ifat3_-.@42du.cn&#39;)+";");
  w("pattern.test(&#39;ifat3@42du.online&#39;) = "+pattern.test(&#39;ifat3@42du.online&#39;)+";");
  w("pattern.test(&#39;毛三胖dd@42du.cn&#39;) = "+pattern.test(&#39;毛三胖@42du.cn&#39;)+";");
  function w(val) {
    document.getElementById("main").innerHTML += val +"<br />";
  }
</script>
</body>
</html>
Copy after login

Test result:

pattern.test(&#39;cn42du@163.com&#39;) = true;
pattern.test(&#39;ifat3@sina.com.cn&#39;) = false;
pattern.test(&#39;ifat3.it@163.com&#39;) = true;
pattern.test(&#39;ifat3_-.@42du.cn&#39;) = true;
pattern.test(&#39;ifat3@42du.online&#39;) = false;
pattern.test(&#39;毛三胖dd@42du.cn&#39;) = false;
Copy after login

Although scheme 3 verification can ensure security, if the whitelist Too long will cause the pattern string to be too long. At this time, you can write the email domain name whitelist as an array, use regular expressions for preliminary verification, and use the whitelist for secondary verification of the domain name.

The email verification function is now given as follows:

var isEmail = function (val) {
  var pattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
  var domains= ["qq.com","163.com","vip.163.com","263.net","yeah.net","sohu.com","sina.cn","sina.com","eyou.com","gmail.com","hotmail.com","42du.cn"];
  if(pattern.test(val)) {
    var domain = val.substring(val.indexOf("@")+1);
    for(var i = 0; i< domains.length; i++) {
      if(domain == domains[i]) {
        return true;
      }
    }
  }
  return false;
}
// 输出 true
isEmail(cn42du@163.com);
Copy after login

I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the PHP Chinese website!

Recommended reading:

How to use Vue.js custom events to perform form input components

Vue uses the following table to modify the array What to do when the page does not render

The above is the detailed content of Use regular expressions to filter email addresses/email addresses. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Roblox: Bubble Gum Simulator Infinity - How To Get And Use Royal Keys
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusion System, Explained
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers Of The Witch Tree - How To Unlock The Grappling Hook
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Clair Obscur: Expedition 33 - How To Get Perfect Chroma Catalysts
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1677
14
PHP Tutorial
1278
29
C# Tutorial
1257
24
How to download, install and register the Hong Kong Digital Currency Exchange app 2025 How to download, install and register the Hong Kong Digital Currency Exchange app 2025 Apr 30, 2025 pm 07:18 PM

The download, installation and registration process of the Hong Kong Digital Currency Exchange app is very simple. Users can quickly obtain and use this app through the official app download link provided in this article. This article will introduce in detail how to download, install and register the Hong Kong Digital Currency Exchange app to ensure that every user can complete the operation smoothly.

2025 Binance Binance Exchange Latest Login Portal 2025 Binance Binance Exchange Latest Login Portal May 07, 2025 pm 07:03 PM

As the world's leading cryptocurrency exchange, Binance is always committed to providing users with a safe and convenient trading experience. Over time, Binance has continuously optimized its platform features and user interface to meet the changing needs of users. In 2025, Binance launched a new login portal aimed at further improving the user experience.

How to register in the ok exchange in China? ok trading platform registration and use guide for beginners in mainland China How to register in the ok exchange in China? ok trading platform registration and use guide for beginners in mainland China May 08, 2025 pm 10:51 PM

In the cryptocurrency market, choosing a reliable trading platform is crucial. As a world-renowned digital asset exchange, the OK trading platform has attracted a large number of novice users in mainland China. This guide will introduce in detail how to register and use it on the OK trading platform to help novice users get started quickly.

What are the three giants in the currency circle? Top 10 Recommended Virtual Currency Main Exchange APPs What are the three giants in the currency circle? Top 10 Recommended Virtual Currency Main Exchange APPs Apr 30, 2025 pm 06:27 PM

In the currency circle, the so-called Big Three usually refers to the three most influential and widely used cryptocurrencies. These cryptocurrencies have a significant role in the market and have performed well in terms of transaction volume and market capitalization. At the same time, the mainstream virtual currency exchange APP is also an important tool for investors and traders to conduct cryptocurrency trading. This article will introduce in detail the three giants in the currency circle and the top ten mainstream virtual currency exchange APPs recommended.

How to download the Hong Kong Digital Currency Exchange app? The top ten digital currency exchange apps are included How to download the Hong Kong Digital Currency Exchange app? The top ten digital currency exchange apps are included Apr 30, 2025 pm 07:12 PM

The methods to download the Hong Kong Digital Currency Exchange APP include: 1. Select a compliant platform, such as OSL, HashKey or Binance HK, etc.; 2. Download through official channels, iOS users download on the App Store, Android users download through Google Play or official website; 3. Register and verify their identity, use Hong Kong mobile phone number or email address to upload identity and address certificates; 4. Set security measures, enable two-factor authentication and regularly check account activities.

Top 10 Digital Currency Trading Apps Rankings: Top 10 Safe and Easy Virtual Digital Currency Exchanges Top 10 Digital Currency Trading Apps Rankings: Top 10 Safe and Easy Virtual Digital Currency Exchanges Apr 30, 2025 pm 04:24 PM

The rankings of the top ten digital currency trading apps are: 1. Binance, 2. OKX, 3. Coinbase, 4. Kraken, 5. Huobi, 6. KuCoin, 7. Bitfinex, 8. Bittrex, 9. Gemini, 10. Poloniex. These exchanges provide a safe and reliable trading environment and a variety of trading methods. Users can operate on each platform through the steps of registration, email verification, KYC identity verification, deposit and start trading.

The latest entrance address of Binance Exchange in 2025 The latest entrance address of Binance Exchange in 2025 May 07, 2025 pm 07:00 PM

As the world's leading cryptocurrency exchange, Binance is always committed to providing users with a safe and convenient trading experience. Over time, Binance has continuously optimized its platform features and user interface to meet the changing needs of users. In 2025, Binance launched a new login portal aimed at further improving the user experience.

2025 Binance Online Web Address 2025 Binance Online Web Address May 07, 2025 pm 06:54 PM

As the world's leading cryptocurrency exchange, Binance is always committed to providing users with a safe and convenient trading experience. Over time, Binance has continuously optimized its platform features and user interface to meet the changing needs of users. In 2025, Binance launched a new login portal aimed at further improving the user experience.

See all articles