Asp.Net’te normal olarak bir metin kutusuna e-posta adresi doğrulaması eklerseniz (regularExpressioVlidator) hasanöşiğüı@hasangürsoy.com.tr gibi bir e-posta adresini doğrulamayı geçemez. Bu da tasarladığımız web sitesindeki iletişim formuna Türkçe domain sahiplerinin e-postalarını girmemesine neden olacaktır.

İletişim formu

Son tasarladığım bir web projesinde bu nokta sonunda beni araştırmaya sevk etti. Fakat pek de istediğim gibi birşey bulamadığımdan ifadeyi (expression) kendim yazdım. İfade şu şekilde:

\w*[\wçığöşü]+([-+.']\w+)*@\w*[\wçığöşü]+([-.]\w+)*\.\w+([-.]\w+)*

Bunu bir örnekte açıklayacak olursak formumuzda aşağıdaki kod yer almalı. Ayrıca bir de requiredFieldValidator koyuyorum ki e-posta kutucuğu boş da bırakılamasın.


<asp:TextBox ID="tEPosta" runat="server" CssClass="input" />
<asp:RequiredFieldValidator ID="rfvEPosta" runat="server" ControlToValidate="tEPosta" ErrorMessage="* zorunlu" Display="Dynamic" />
<asp:RegularExpressionValidator ID="revEPosta" runat="server" ControlToValidate="tEPosta" ErrorMessage="* geçersiz" Display="Dynamic" ValidationExpression="\w*[\wçığöşü]+([-+.']\w+)*@\w*[\wçığöşü]+([-.]\w+)*\.\w+([-.]\w+)*" />

Bu soruya stackoverflow‘da ve asp.net‘te yanıt aradım.