1

私は人々が登録できる登録フォームを作成しています。そのためregex、他の電子メールをキャプチャする検証を行うことができるかどうか、その電子メールアドレスを要求します。

例:

xxx@gmail.com、またはxxx @ yahoo.com 、およびxxx@bat.ac.ukのみを許可することで、登録者に検証を求める電子メールを送信するシステムを実装できます。私はこの検証部分で立ち往生している電子メールビットを実装する方法を知っています。これが理にかなっていることを願っています

デフォルトのメール検証式を変更する方法はありますか

\ w +([-+。'] \ w +)@ \ w +([-。] \ w +)。\ w +([-。] \ w +)*

4

3 に答える 3

1

これが ASP.NET Web フォームの場合は、 を使用RegularExpressionValidatorしてジョブを実行できます。

<asp:RegularExpressionValidator ID="SomeID"
    runat="server"
    ControlToValidate="TheControlIDToValidate"
    ErrorMessage="An error message you want to display."
    ValidationExpression="\w+([-+.']\w+)@\w+([-.]\w+).\w+([-.]\w+)*"
    EnableClientScript="true" />

これにより、JavaScript を使用してクライアント側で値が検証されます。ただし、JavaScript が有効になっていない場合は回避できるため、サーバー側でRegexクラスを使用する必要があります。

Regex rgx = new Regex(@"\w+([-+.']\w+)@\w+([-.]\w+).\w+([-.]\w+)*", RegexOptions.IgnoreCase);
MatchCollection matches = rgx.Matches(input);

matches.Count > 0あなたが良ければ。


ただし、ASP.NET MVC の場合は、RegularExpressionデータ アノテーションを使用できます。モデルのプロパティに属性を追加するだけです。

[RegularExpression(@"\w+([-+.']\w+)@\w+([-.]\w+).\w+([-.]\w+)*", "Some error message.")]
public string EmailAddress { get; set; }
于 2013-02-21T12:08:44.363 に答える
0

メールが有効であることを確認するためにデフォルトのバリデーターを使用し、CLIENT 側とサーバー側の両方の検証を実装する CustomValidator を追加することをお勧めします。

ここで拡張機能を確認し、必要なカスタム ロジックを実行できます。

于 2013-02-21T12:03:34.533 に答える
0

メールアドレスを検証するために組み込みの属性を使用し、それに加えて、次の正規表現で確認します。

@bat.ac.uk$

次に、それが有効な電子メールであり、探しているものが含まれていることがわかります。電子メールの検証は非常に複雑であり、書き直すことはお勧めしません。そのため、2 つの異なるもので検証するだけです。

電子メール アドレス属性: http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.emailaddressattribute.aspx

于 2013-02-21T12:06:36.460 に答える