0

次の正規表現について少し助けが必要です

  1. 小文字のアルファベットのみを使用できる英数字
  2. 数字またはアルファベットで始まる
  3. ピリオド (.) を使用できます
  4. 連続したピリオドを許可しません いいえ ..
  5. その他の特殊文字は使用できません

ありがとう、-GM

4

5 に答える 5

4
^(?![^.]*\.\.)[a-z0-9][a-z0-9.]*$

最初の否定的な先読みは、4 番目の要件をカバーしています。それ以外はすべて非常に簡単です。 ^$が文字列アンカーの開始と終了である場合、文字クラスは、小文字、数字、および.のみが許可されるという要件を強制します。

長さの制限 (6 ~ 16 文字) を追加するには、 を に変更するだけ*です{5,15}*は「前の要素を 0 回以上{n,m}繰り返す」を意味し、「前の要素をnm回 (両端を含む) の間繰り返す」ことを意味します。{5,15}代わりに使用される理由は{6,16}、1 つの文字が最初の文字クラスによって既に消費されているためです。最終結果は次のとおりです。

^(?![^.]*\.\.)[a-z0-9][a-z0-9.]{5,15}$
于 2013-07-25T22:09:29.800 に答える
3

あなたが最も学ぶように、答えを与えることなく、ここにいくつかの支援があります.

  1. 英数字など特定の文字の組み合わせから一致させるには、文字クラスを使用します。この式は正確に1文字に一致することに注意してください。複数に一致させるには量指定子を使用する必要があります。 [a-z0-9] +
  2. 何かで「開始」または「終了」するには、最初の文字の前または最後の文字の後にそれぞれアンカー^および を使用する必要があります。$(ただし、注意してください。文字クラスでは、 は文字クラスを^ 反転します。)
  3. 正規表現では、ワイルドカード(改行文字以外の任意の文字に一致).として特別な意味があります。したがって、リテラルのドットを選択するには、それらをエスケープする必要があります。ドットをエスケープする別の方法は、ドットを文字クラスに入れることです: .\.[.]
  4. 非連続性はよりトリッキーです。否定先読みアサーション(または一般的なルックアラウンド アサーション)に関する詳細情報を調べる必要があります。

太字の単語はすべて、Google で学習できる用語です。

于 2013-07-25T22:15:14.230 に答える
2

文字列がピリオドで終わらない場合は、これを使用します。

/^[a-z0-9]+(\.[a-z0-9]+)*$/

または、次の場合:

/^[a-z0-9]+(\.[a-z0-9]+)*\.?$/
于 2013-07-25T22:09:24.320 に答える
2

私はそれらの線に沿って何かを言うでしょう: /^[a-z0-9]+(\.[a-z0-9]+)*\.?$/(行がピリオドで終わることができると仮定します)

于 2013-07-25T22:08:31.673 に答える
0

これが一番のはず

^([a-z0-9]+\.?)+$
于 2013-07-25T22:22:07.663 に答える