2016-07-25 5 views
-3

正規表現:/([a-z][0-9]*){6,12}/i正規表現は*数量詞の一部である文字はカウントされません

はので、私は、文字列「があっ上がらない場合でも、以上6未満12の文字が含まれている場合、これはtrueを返すことを期待しています私は "123456789a"が真で "abcdefghi1"を返したいが、最初のものはそうではない。

var myRegEx = /([a-z][0-9]*){6,12}/i; 


function checkIt() { 
var myString = document.getElementsByTagName("input")[0].value; 

if(myRegEx.test(myString) == true) { 
document.getElementsByTagName("p")[0].className = "trueOrFalse true"; 
document.getElementsByTagName("p")[0].innerHTML = "True"; 
} 
else { 
document.getElementsByTagName("p")[0].className = "trueOrFalse false"; 
document.getElementsByTagName("p")[0].innerHTML = "False"; 
} 

} 
+2

'' 123456789a "は' /([a-z] [0-9] *){6,12}/i'とどのように一致すると思いますか? '[a-z] 'の文字で始まらない。 –

+3

regex101.com first try –

+0

あなたの例から無関係なコードを削除する時間を取ってください。その例の大部分は問題とは関係ありません。 –

答えて

-1

ちょうどあなたの正規表現条件の周りに文字列の長さのチェックをラップ:

if string.length > 6 && string.length < 12) { 
    // if regex... 
} 
+0

誰がこれを落としたのですか?なぜですか? – fmue

0

https://jsfiddle.net/y71mudms/2/

正しい正規表現は、我々は完全に一致する検索

var myRegEx = /^[0-9]{6,11}[a-z]{1}$/i; 

です数字+ 1文字6〜12

/^[0-9]{6,11}[a-z]{1}$/i; 
^^^  ^
| | |   |_ end of string 
| | | 
| | |_ from 6 min to 11 max repetitions 
| | 
| |_ digit 0-9 include all digits 
| 
|_ begin of string 

ref。 6 digits regular expression

+0

ここで私に説明しましょう:私は6以上12未満のアルファベット文字またはアルファベットと数字の混在が、数字だけではなく、正規表現を真にしたい。 – Taurus

+0

私はこれを "/([az] [0-9] *){6,12}/i"とすることができますが、問題は数字がカウントされないためです。少なくとも6つのaz文字、私はそれが1つのaz文字があり、残りが数字であっても真に戻ってほしいです。 – Taurus

関連する問題