[研究]單一或多個 Email 格式驗證 (使用 HTML5)
2022-06-10
在HTML5問世前,輸入資料是否符合 Email 格式,要自己想辦法處理。
HTML 5 提供 inpuit 標籤 type屬性值為 email 時,可以驗證輸入內容是否符合單一 Email 格式;若再多加一個 multiple 屬性,則驗證是否符合多個 Email。
環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C#
Default2.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default2.aspx.cs" Inherits="WebApplication1.Default2" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form id="form1" runat="server"> Single Email 1:<asp:TextBox ID="TextBox1" Type="email" runat="server"></asp:TextBox><br /> Single Email 2:<input id="Text1" type="email" /><br /> Multiple Email 1:<asp:TextBox ID="TextBox2" Type="email" multiple runat="server"></asp:TextBox><br /> Multiple Email 2:<asp:TextBox ID="TextBox3" Type="email" multiple="multiple" runat="server"></asp:TextBox><br /> Multiple Email 3:<input id="Text2" type="email" multiple /><br /> Multiple Email 4:<input id="Text3" type="email" multiple="multiple" /><br /> <asp:Button ID="Button1" runat="server" Text="Send" /> </form> </body> </html> |
部分程式碼底下被標記成綠色波浪線
所以另外測試把 multiple 寫成 multiple="multiple",其實 HTML5 直接使用 multiple 即可。只是 ASP.NET 和 XHTML5 任為不該這樣寫,但編譯或執行都是正常的。
********************************************************************************
實際測試一下
(下圖) type="email" 是允許不填內容,只是若填寫,一定要符合 Email 格式。
如果強迫要填寫,加個 required 或 required="required" 屬性吧。
********************************************************************************
六種寫法的測試結果圖不全部呈現,僅呈現單一和多個 Email 的狀況,另外發現半形空白會自動被移除,不管半形空白出現在開頭、中間、結尾 (有實測,沒特別抓圖),不管是單一或多個Email輸入。
多個Email分隔必須使用半形逗號,半形分號不行。( Microsoft Outlook 2019 的收件者若有多個 Email 是半形分號來分隔,半形分號不行,習慣不同 )
前端的檢查,對於駭客是可以用Burp Suite或其他工具或手法繞過,所以不管前端是否檢查,若要檢查,伺服器端的檢查是必須的。
[研究][ASP.NET]單一或多個 Email 格式驗證 (使用C#)
https://shaurong.blogspot.com/2022/06/aspnet-email-c.html
(完)
您好,我是AmazingTalker的Paul,閱讀您的網址後覺得應該有機會能做貼文上的合作!再麻您透過mail聯繫我取得更詳盡的合作模式~這是我的mail:paul.lee@amazingtalker.com,再麻煩您囉!感謝您!
回覆刪除貼文工作?AmazingTalker 都是英文、日文、韓文、中文、法文、西班牙文、德文、泰語、粵語家教,和電腦工程師好像沒甚麼關係。
刪除