次の正規表現について少し助けが必要です
- 小文字のアルファベットのみを使用できる英数字
- 数字またはアルファベットで始まる
- ピリオド (.) を使用できます
- 連続したピリオドを許可しません いいえ ..
- その他の特殊文字は使用できません
ありがとう、-GM
次の正規表現について少し助けが必要です
ありがとう、-GM
^(?![^.]*\.\.)[a-z0-9][a-z0-9.]*$
最初の否定的な先読みは、4 番目の要件をカバーしています。それ以外はすべて非常に簡単です。 ^
と$
が文字列アンカーの開始と終了である場合、文字クラスは、小文字、数字、および.
のみが許可されるという要件を強制します。
長さの制限 (6 ~ 16 文字) を追加するには、 を に変更するだけ*
です{5,15}
。 *
は「前の要素を 0 回以上{n,m}
繰り返す」を意味し、「前の要素をn
~m
回 (両端を含む) の間繰り返す」ことを意味します。{5,15}
代わりに使用される理由は{6,16}
、1 つの文字が最初の文字クラスによって既に消費されているためです。最終結果は次のとおりです。
^(?![^.]*\.\.)[a-z0-9][a-z0-9.]{5,15}$
あなたが最も学ぶように、答えを与えることなく、ここにいくつかの支援があります.
[a-z0-9]
+
^
および を使用する必要があります。$
(ただし、注意してください。文字クラスでは、 は文字クラスを^
反転します。).
として特別な意味があります。したがって、リテラルのドットを選択するには、それらをエスケープする必要があります。ドットをエスケープする別の方法は、ドットを文字クラスに入れることです: .\.
[.]
太字の単語はすべて、Google で学習できる用語です。
文字列がピリオドで終わらない場合は、これを使用します。
/^[a-z0-9]+(\.[a-z0-9]+)*$/
または、次の場合:
/^[a-z0-9]+(\.[a-z0-9]+)*\.?$/
私はそれらの線に沿って何かを言うでしょう: /^[a-z0-9]+(\.[a-z0-9]+)*\.?$/
(行がピリオドで終わることができると仮定します)
これが一番のはず
^([a-z0-9]+\.?)+$