1

私の「ServiceEditModel」クラスには、typeof Uri のプロパティ Url があります。検証のために、「編集」ページに入力された URL が有効かどうかを確認する正規表現を検索します。
正規表現はチェックする必要があります

  1. http:// または https:// はありますか
  2. 本文にアルファベットと数字のみが含まれていること
  3. 末尾は、.com、.net、.ch などです。
  4. たとえばhttps://stackoverflow.com/questionsのように、エンディングの背後に別のパラメーターがある可能性があります。

正規表現が入ってくる私のコードは次のようになります:

[Required(ErrorMessageResourceType = typeof(Resources.ApplicationTemplate), ErrorMessageResourceName = "UrlRequired")]
[RegularExpression("REGEX COMES HERE", ErrorMessageResourceType = typeof(Resources.ApplicationTemplate), ErrorMessageResourceName = "InvalidUrl")]
public Uri Url { get; set; }

私はすでに正規表現を探しましたが、これが実際に正規表現を使用した最初の経験であるため、正しいものを見つけることができません。

手伝ってくれてありがとう!

編集

http://www.comsoft-direct.ch/のような「-」文字を含む URL も許可するように、正規表現を更新しました。

更新された正規表現:^(http|https):\/\/([\w\d + (\-)+?]+\.)+[\w]+(\/.*)?$

4

1 に答える 1

4

この正規表現は、制約に従って単純なシナリオをチェックする必要があります。簡単に操作して改善できます(これを強くお勧めします。まず、この状態では非常に単純であり、次に、正規表現の初心者であるためです :)) .

^(http|https):\/\/[\w\d]+\.[\w]+(\/[\w\d]+)$

Regex 101で確認してください

基本的な説明:

(http|https):\/\/

httpまたはで始まりhttps、その後に続く必要があります://

[\w\d]+

N 個の文字および/または数字が続く

\.[\w]+

dotaと一連の文字が続きます。例:.comなど(数字も許可するには に.net変更する必要があることに注意してください)\.[\d\w]+

(\/[\w\d]+)

必要に応じて、 a/と一連の文字および/または数字が続きます (例: /questions)

: 完全に汎用的な URL バリデーターが必要な場合は、Google で検索する必要があります。

于 2014-01-10T14:57:27.050 に答える