2016-10-18 25 views
7

どのように強制する正規表現作るん:正規表現 - 限られた長さの文字と数字

  • 文字と数字(各々の少なくとも1)
  • 最小と最大の長さ(10〜50)を
  • 文字や数字

以外には何もないのphpするpreg_matchを使用していますか?


は、ここで私が得たものです:

^[A-Za-z0-9]{10,50}$ 

文字と数字を強制除いてすべてを行うようです。

答えて

5

の操作を行います。

^(?=.*(?:[A-Za-z].*\d|\d.*[A-Za-z]))[A-Za-z0-9]{10,50}$ 
  • (?=.*(?:[A-Za-z].*\d|\d.*[A-Za-z]))がゼロ幅肯定先読みであるが、これは確かに

  • [A-Za-z0-9]{10,50}はマッチが文字だけが含まれているを確認します少なくとも1つの文字、そして本一桁があります数字は

Demo


たり、クリーナー、代わりの2つの先読みを使用するか、-INGの(chris85のおかげで):それは仲間の作品

^(?=.*[A-Za-z])(?=.*\d)[A-Za-z0-9]{10,50}$ 
+0

おかげで、私はちょうど私が追加します同じサイト – Ibrahim

+2

でこれをチェックしますこれは、https://regex101.com/r/TTeWKd/1で、2つのルックアヘッドを使用して、 'または'と重複した文字のチェックを必要としません。 – chris85

+0

@ chris85それはクリーナーが追加されました。ありがとう。 – heemayl

関連する問題