1. 程式人生 > >如何判斷使用者輸入的郵箱格式是否正確?

如何判斷使用者輸入的郵箱格式是否正確?

使用者名稱@網站名-例sina.com、tom.com、yahoo.com.cn……(有些小網站的郵箱在填資料時不認,所以推薦用網站的郵箱)
一般都是用<正則表示式>來判斷. 什麼是正則表示式?
  • 就是用如下特殊符號其組合來代表某個字元(以下符號可以通配所有字元)
    符號	說明
    .	代表除換行符以外的任意字元
    \w	代表字母或數字或下劃線或漢字
    \s	代表任意的空白符
    \d	代表數字
    \b	代表單詞的開始或結束
    ^	代表字串的開始
    $	代表字串的結束
    
    abc120 可以用這樣的正則表示式表示: \w\w\w\d\d\d, 或者 \w\w\w\w\w\w 或者 ...... (六個英文句點) 等等...
  • 用如下符號來代表某個可能字元的集合
    [ ]
    
    如電話號碼的第n位,一定屬於這個集合 [0-9] ,即0到9;某個外國人名字的第n個字母,一定屬於這個集合 [a-z A-Z],即26個英文字母的大小寫組成的集合
  • 用如下符號來代表 上面所表達的某個字元或某個集合的重複:
    符號	說明
    *	重複零次或更多次
    +	重複一次或更多次
    ?	重複零次或一次
    {n}	重複n次
    {n,}	重複n次或更多次
    {n,m}	重複n到m次
    
  • 然後剩下的符號基本就是原意了,如 郵箱符號 @ 就表示郵箱符號,等號 = 就表示等號, 橫槓 - 就表示橫槓等

舉個例子吧,給你解釋一下下面這個判斷郵箱格式的正則表示式的意思(下面看不懂的可以檢視上面給的各個符號的意義):
^[a-zA-Z0-9_-]
[email protected]
[a-zA-Z0-9_-]+\\.[a-zA-Z0-9_-]+$
把上面的表示式分段,並介紹每個欄位的意思
1 ^ ;2 [a-zA-Z0-9_-]+ ;3 @ ; 4 [a-zA-Z0-9_-]+ ; 5 \\. ;6 [a-zA-Z0-9_-]+ ;7 $
  • ^ 代表一切判斷從此處開始 (段1)
  • [a-zA-Z0-9_-] 方括號表示集合 這個方括內的意思是告訴執行程式的那貨(其實就是電腦):嘿,編譯器老兄,你幫我看看這個郵箱地址的第一個字元,只要它屬於集合[a,z],或者集合[A,Z],或者集合[0,9],或者集合{”_“ , ”-“}的話,你就隨時待命,準備執行我下一步的任務;否則,你就可以先下班,別鳥這個郵箱地址了,它的格式肯定是錯的
  • + 加號表示重複一次或多次 加號的意思是告訴電腦:嘿,編譯器老兄,你順便幫我看看這個郵箱地址的第二個字元、第三個字元、第四個字元......看看這些字元是不是都屬於同上一條的那些集合(即重複)。如果符合,你就再順便幫我判斷第五個字元是不是也屬於上條那些集合唄...嘿嘿 (段2)
  • 編譯器這時候就疑惑且不高興了,它反問我一句:尼瑪,難道讓我一個字元一個字元的一直判斷下去?!我多會才能停呀...
  • 這時候我告訴編譯器,嗯,記住,當你看到一個字元長得像這個樣子的時候,你就可以先停一停了...
  • "@" 艾特符 (段3)
  • 編譯器很高興,於是它就根據給定的郵箱地址,開始一個字元一個字元地判斷起來,直到它順利地看見了”@“(艾特符),這時編譯器喜上眉梢,只見他長出一口氣,剛準備說:我先歇一會...
  • 這時我告訴編譯器:不行不行,工作還沒完成呢,你繼續幫我判斷跟在”@“符號後的那些字元,看看他們是不是屬於第一條的那些集合( 段4)...
  • 編譯器撅著嘴繼續判斷起來,然後他一邊判斷一邊又問:那我多會才停下來呢?
  • 我告訴編譯器,當你看見這個字元的時候就先停下來
  • ”.“ 英文句號 (段5)
  • 編譯器於是繼續判斷著,奇了怪了這郵箱地址格式一路正確,於是它走到了英文句號跟前(”.“)停下了,看上去有點想罷工的樣子了
  • 於是我趕緊說道,老兄,最後一件工作了,真的最後一件了!把跟在英文句號(”.“)之後的那些字元也依次判斷一下吧,只要他們仍屬於第一條所列的那些集合,你就可以停下了,下班回去嘿咻了... (段6)
  • 編譯器此時面露喜色,跟著開始判斷起英文句號(".")之後的那些字元來,但是他突然臉一黑,想到:尼瑪,要是這個字元有100多個,1000多個,難道我就一直這麼判斷下去,我不走火入魔了才怪呢!於是他對我說:要是有1000多個字元,難道就讓我一個一個判斷下去,我根本下不了班了呀!
  • 我說:老兄,不用著急。首先,你不會遇到這麼長的字元,其次,記住,只要你看見下面這個字元,就可以徹底下班走人了。
  • 這個字元就是:”$” 刀勒符,它的意思就是告訴編譯器,判斷條件已經到結尾,一切判斷到此為止 (段7)
下面舉一個例子:
var sletter=document.f1.letter.value; //獲取表單物件的值
       if(sletter!=""){
           var reg = /^([a-zA-Z0-9_-])[email protected]([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;
           isok=reg.test(sletter);
       }
       if (!isok) {
           alert("郵箱格式不正確!");

           return false;
       }

相關推薦

JavaScript 判斷使用者輸入格式是否正確

/*  * 功能:判斷使用者輸入的郵箱格式是否正確  * 傳參:無  * 返回值:true or false  */ function form_check() {        var email = document.getElementById("email").v

如何判斷使用者輸入郵箱格式是否正確

使用者名稱@網站名-例sina.com、tom.com、yahoo.com.cn……(有些小網站的郵箱在填資料時不認,所以推薦用網站的郵箱) 一般都是用<正則表示式>來判斷. 什麼是正則表

java中String類常用方法I(判斷 Java 檔名是否正確判斷郵箱格式是否正確

內容摘自慕課網 具體程式碼: public class HelloWorld { public static void main(String[] args) { // Java檔名 String fileName

判斷輸入IP格式是否正確

問題描述 在網路課程上,我學到了很多有關IP的知識.IP全稱叫網際協議,有時我們又用IP來指代我們的IP網路地址,現在IPV4下用一個32位無符號整數來表示,一般用點分方式來顯示,點將IP地址分成4

C#報錯:輸入字串格式正確

List<Model> data1 = list.Select(x => new Model { num = Convert.ToDecimal(x.PM25) }).OrderBy(x => x.num).ToList(); 修改如下: data = list

ajax判斷使用者輸入的密碼是否正確

控制層的程式碼段 @RequestMapping("CheckPass")//ajax請求後臺查詢密碼是否正確 @ResponseBody public void CheckPass(User user , HttpServletResponse response) throws IOEx

iOS利用正則表示式驗證郵箱格式是否正確

//利用正則表示式驗證 + (BOOL)isAvailableEmail:(NSString *)email { NSString *emailRegex = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+

判斷郵箱,手機號碼,身份證,使用者名稱,暱稱等輸入格式是否正確的 正則表示式

//郵箱 + (BOOL) validateEmail:(NSString *)email {     NSString *emailRegex = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A

Java用正則表示式判斷輸入的電話號碼格式是否正確

import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.commons.lang3.StringUtils; /** *三大運營商號碼均可驗證(不含衛星通訊1349) */ p

正則表示式,驗證輸入郵箱是否是正確格式郵箱

正則表示式–格式工廠 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script> /*檢

jquery 正則表示式判斷是否為正確郵箱格式

var reg = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;

[Xcode10 實際操作]九、實用進階-(5)使用正則表示式判斷格式是否正確

[Xcode10 實際操作]九、實用進階-(5)使用正則表示式判斷格式是否正確. 本文將演示使用正則表示式判斷郵箱的格式是否正確。 在專案導航區,開啟檢視控制器的程式碼檔案【ViewController.swift】 1 import UIKit 2 3 //建立一個結構體,用於實現正

判斷輸入日期格式是否為指定的格式判斷輸入是否為數字

1. 指定日期格式     String START_TIME ="2018-10-11";                 DateFormat format = new SimpleDateFormat("yyyy-MM-dd");                 tr

Java實現一個簡單的郵箱格式判斷

郵箱要求: “@”不能在第一位 “”不能在最後一位 ,“@”和“”中間應該有字元 ,*** @ ***。***(標準格式) 當然還有更嚴格的校驗規則,我們此處考慮到這即可 具體的程式碼實現: package com.poin

Java學習:判斷輸入日期格式是否滿足要求

import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public cl

C++判斷使用者輸入路徑是否正確判斷碟符是否存在以及“\”與"/")

直接上程式碼,用了windows.h裡的函式獲取碟符 #include <iostream> #include <Windows.h> #include <string.h> #include <string> #includ

java中判斷日期格式是否正確

import java.util.Date;import java.util.regex.Matcher;import java.util.regex.Pattern;public static boolean isValidDate(String sDate) {    

JS 判斷頁面的url是否是正確格式

function isURL(str_url) {// 驗證url var strRegex = "^((https|http|ftp|rtsp|mms)?://)" + "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*

Java中用正則表示式判斷日期格式是否正確

/** * @Title:DateType.java * @Package:com.you.dao * @Description: * @Author: 遊海東 * @date: 2014年3月8日 下午10:54:50 * @Version V1.2.3 */ package

在IE10中點選updatepanel裡面的imagebutton時出現的錯誤:輸入字串的格式正確( 在 System.Number.StringToNumber)

問題描述:在IE10中點選updatepanel裡面的imagebutton時出現“輸入字串的格式不正確”的錯誤,在其它瀏覽器以及IE7/8/9無此問題 異常訊息: 輸入字串的格式不正確。 在 System.Number.StringToNumber(String s