2017-10-04 139 views
0

口座番号は数字で始まり数字で終わる必要があります。番号の中で、ハイフンが受け入れられます。ハイフンは繰り返してはならないことに注意してください( - 、---など)。 例1-4を検証し、ケース5-6をどのように扱うことができますか?口座番号の正規表現は、数字とハイフンのみを受け入れます。

1 324324-324324-23432例えば

^[0-9][0-9\-]*[0-9]$ 


TRUE

2 -2342343-2432-3214324はFALSE

3 324324-324324-ですは偽です

4. 3dsfsdf4324-324-324は偽です

5. 324324--324324-はFALSE

6. 324324--3243-24であるあなたは否定先読みアサーションを使用することができますFALSE

答えて

0

です。

^[0-9](?:[0-9]|-(?!-))*[0-9]$ 

(?:)は非捕捉グループである。その中で数字を受け入れるか、-(?!-)を受け取ります。これは、ハイフンの後ろに別のハイフンがないことを意味します。

すべての正規表現エンジンが先読みアサーションをサポートするわけではありませんが、ほとんどの点で注意してください。


あなたは否定先読みアサーションをサポートしていないエンジンを使用している場合、あなたはまた、すべてのハイフンは数字が続かなければならないことを指定する正規表現を使用することによってこれを行うことができます。

^[0-9](?:-?[0-9])*$ 

この1つの入力として(例えば3)この1つは、単一の桁を受け入れるされ、それが一致したもので前から1差を持っているが、他の一つは少なくとも2桁を必要とします。

-1

var input = ` 
 
324324-324324-23432 
 
324324-324324-23432-11111 
 
-2342343-2432-3214324 
 
324324-324324- 
 
3dsfsdf4324-324-324 
 
324324--324324- 
 
324324--3243-24 
 
`; 
 

 
console.log(input.match(/^[0-9]{5,}-[0-9]{5,}-[0-9]{5,}$/gm))

0
^\d?(?:\d{1,}\-{1})*\d+$/ 

また、これを使用することができます。

関連する問題