2017-08-30 6 views
-1

入力できる正規表現が必要です - 文字または数字の5つの記号を言うことができますが、文字の後に常に数字を続ける必要がありますか?RegEx:固定長文字の後ろに数字

[0-5 letters][0-5 digits]のようにする必要がありますが、文字列の全長は5記号にする必要があります。

問題は、最初の2つの式を適用した後に文字列の長さを制限することができないということです。

私は

^[a-zA-Z]{0,5}[0-9]{0,5}$ 

のようなものを試してみたが、それは私が欲しいものではありません - それは長さを制限するものではありません。

例:

  • AAAAA
  • AA777一致していなければならない

例:

  • AAA7A
  • 77AAA
  • AAA777
+1

だから、あなたが何を持っています試した?あなたはどんな問題に取り組んでいますか?私たちはあなたのためにあなたの仕事をするためにここにいません。 – Cerbrus

答えて

2

あなたは、文字列を主張する正規表現の先頭の先読みアサーション(?=.{5}$)を使用することができますが、常に5の長さ:

var samples = ['AAAAA',   // match 
 
       'AA777',   // match 
 
       '77777',   // match 
 
       'AAA7A',   // doesn't match pattern 
 
       '77AAA',   // doesn't match pattern 
 
       'AAA777'   // match the pattern but doesn't match the length 
 
       ] 
 

 
console.log(
 
    samples.map(s => /^(?=.{5}$)[a-zA-Z]*[0-9]*$/.test(s)) 
 
)

+0

私はこの答えが好きです。私はより複雑な主張を使用しようとしていました。 –

+0

@AlexCollinsありがとうございます。 – Psidom

+0

英字以外の文字をすべて拒否するには、先読みで '.'の代わりに' [a-zA-Z0-9] 'を使うことができます。 –

関連する問題