電子郵件格式檢查

    內容表格
    沒有標頭

    var pattern;
    電子郵件格式檢查作為應用在Regular Expression是極為常用的. 因此可以說是非常是重點. 首先確定格式:
    username@hostaddress
    可以看到這樣的格式符合的匹配有: directx@microsoft.com 或著 geforce@nvidia.com
    透過@畫界線, 我們可以拆其兩個部分: username與hostaddress
    針對username部分的pattern確立:
    1. 開頭要有字, 不可是特殊字元
    2. 後續連接可以有:directx.d3d.d3d11 , geforce.fermi.590 , opengl-group.
    在1的情況下, 使用\w+便可符合. 而2的情況下, 我認定接續符號可以存在 - , + , . 和 ' , 使用範圍[]來規定: [-+.'] . 接續符號後面便可接上文字, 但是不可存在特殊字元, 一樣使用\w+便可符合. 再與接續符號組合: [-+.']\w+ .
    設t=[-+.']\w+ , t是可以做連續接續的, 如在地2項看到.d3d.d3d11的兩次接續. 用分組將其圈住允許出現0次或著多次以上可以符合: (t)*=([-+.']\w+)* . 最後在與第一項組合: \w+t=\w+([-+.']\w+)* , 這便是求得的username形式的pattern.
    剩下的就是hostaddress的確定, 他符合的就是跟URL位置類似一樣. 例如: smtp.live.com或著gmail.com.tw .
    hostaddress的pattern確立:
    1. 開頭必須要有字, 不可是特殊字元
    2. hostaddress必須符合一定程度的URL格式. 例如hostaddress只有gmail不合理.
    針對第1項使用\w+便可解決. 第2項有類似username的pattern確立第2項的接續符號存在. 但是規定只有 - 和 .的存在, 接續符號限定: [-.] . 接續符號後面連接與第1項一樣, 使用\w+, 與接續符號組合設t=[-.]\w+, 但是t可以0次或多次出現, 使用分組加上量詞來規定: (t)*=([-.]\w+)* .
    hostaddress必須符合一定程度的URL格式. 所以存在著xxxxx.yyy這樣的類似情況, .yyy會出現, 使用\.\w+可以符合. 由於 . 的符號是特殊字元, 要做為普通字元的話必須搭配拖曳字元 \ 來展現. hostname得到的pattern為: \w+([-.]\w+)*\.\w+
    最後, usermam與hostaddress組合成為: \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+

    pattern=/^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+$/;

    標籤 (Edit tags)
    • No tags
    您必須 登入 才能發佈評論。
    Powered by MindTouch Core