2022年6月10日 星期五

[研究]單一或多個 Email 格式驗證 (使用 HTML5)

[研究]單一或多個 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

(完)


2 則留言:

  1. 您好,我是AmazingTalker的Paul,閱讀您的網址後覺得應該有機會能做貼文上的合作!再麻您透過mail聯繫我取得更詳盡的合作模式~這是我的mail:paul.lee@amazingtalker.com,再麻煩您囉!感謝您!

    回覆刪除
    回覆
    1. 貼文工作?AmazingTalker 都是英文、日文、韓文、中文、法文、西班牙文、德文、泰語、粵語家教,和電腦工程師好像沒甚麼關係。

      刪除