如何判斷使用者輸入的郵箱格式是否正確?
一般都是用<正则表达式>来判断.什么是正则表达式?
就是用如下特殊符号或其组合来代表某个字符(以下符号可以通配所有字符)
符号 说明 . 代表除换行符以外的任意字符 \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_-]+@[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_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/; isok=reg.test(sletter); } if (!isok) { alert("邮箱格式不正确!"); return false; }
更多推荐:《js教程》
以上是如何判斷使用者輸入的郵箱格式是否正確?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python和JavaScript開發者的薪資沒有絕對的高低,具體取決於技能和行業需求。 1.Python在數據科學和機器學習領域可能薪資更高。 2.JavaScript在前端和全棧開發中需求大,薪資也可觀。 3.影響因素包括經驗、地理位置、公司規模和特定技能。

如何在JavaScript中將具有相同ID的數組元素合併到一個對像中?在處理數據時,我們常常會遇到需要將具有相同ID�...

學習JavaScript不難,但有挑戰。 1)理解基礎概念如變量、數據類型、函數等。 2)掌握異步編程,通過事件循環實現。 3)使用DOM操作和Promise處理異步請求。 4)避免常見錯誤,使用調試技巧。 5)優化性能,遵循最佳實踐。

實現視差滾動和元素動畫效果的探討本文將探討如何實現類似資生堂官網(https://www.shiseido.co.jp/sb/wonderland/)中�...

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

深入探討console.log輸出差異的根源本文將分析一段代碼中console.log函數輸出結果的差異,並解釋其背後的原因。 �...
