如何判斷使用者輸入的郵箱格式是否正確?
使用者名稱@網站名-例sina.com、tom.com、yahoo.com.cn……(有些小網站的郵箱在填資料時不認,所以推薦用網站的郵箱)一般都是用<正則表示式>來判斷. 什麼是正則表示式?
- 就是用如下特殊符號或其組合來代表某個字元(以下符號可以通配所有字元)
如 abc120 可以用這樣的正則表示式表示: \w\w\w\d\d\d, 或者 \w\w\w\w\w\w 或者 ...... (六個英文句點) 等等...符號 說明 . 代表除換行符以外的任意字元 \w 代表字母或數字或下劃線或漢字 \s 代表任意的空白符 \d 代表數字 \b 代表單詞的開始或結束 ^ 代表字串的開始 $ 代表字串的結束
- 用如下符號來代表某個可能字元的集合
如電話號碼的第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