2016-09-26 9 views
2

以下のルールの文字列を検証するには、正規表現が必要です。RegExを使用して文字列を検証する

  1. 文字列に2回以上の繰り返し文字を使用しないでください。文字列は、&などの特殊文字を許可するべきではありません
  2. 、<、%

は、これまでのところ私は、ルール1 & 2を検証します。しかし、私が持っているものだけ問題がある正規表現

/(?!(.)\1{2,})^([a-zA-Z0-9''\.\-\,]+\s?)*$/i 

を作成するために管理しましたそれは文字列の先頭のルールのみを検証します。

+0

あなたが受け取った2つの回答についてのフィードバックはありますか? –

答えて

2

あなたの否定的な先読みが機能するようにするには、検証された文字列の任意の場所で3行に一致するようにする必要があります。ちょうどその開始時に.*を追加します。

/(?!.*(.)\1{2,})^([a-zA-Z0-9'".\-,]+\s?)*$/i 

はまた、私はあなたができるようにしたいと、不要なバックスラッシュエスケープを削除仮定し、単一引用符と二重引用符にあなたの文字クラスにあなたの二つの連続する単一引用符を変更しました。

2
それは否定先読みは全体正規表現の代わりに、最初に動作するようになります

/(?!.*(.)\1{2,})^([a-zA-Z0-9'".,-]+\s?)*$/i 
    ^^ 

にあなたの正規表現を変更し

demo

+0

'[a-zA-Z0-9]' [\ w] 'はなぜですか? –

+0

@HappyCoding '\ w'には' _'も含まれています –

関連する問題