2016-10-17 27 views
-1

これは "3x12"と照合する形式です。 "x"の前の最初の数字は2桁ですが、最初の数字は0にできません。この数字の後ろに "x"という文字が続いていなければなりません。ここでJavascript正規表現が正しく一致しない

は私の正規表現です:

/^[1-9]{1,2}[x]{1}[1-9]{1,2}$/g 

は、私がここで間違って何をしているのですか?なぜ "3x12"を試しても一致しないのですか?

+0

_ _「最初の桁は0にできません」を調整する必要があります] [0-9] * 'ではなく、[1-9] {1,2}'でなければなりません。また、 '[x] {1}'は 'x'だけです。 – Xufox

+0

JavascriptはJavaではありません。 – ajb

+0

「3x12」と一致しています。ブラウザのコンソールでこれを試すことができます。 '/^[1-9] {1,2} [x] {1} [1-9] {1,2} $/g.test(" 3x12 ")'は 'true'に評価されます。 – Xufox

答えて

2

@nnnnnn述べたように - それは `[1-9でなければなりません - あなたの正規表現は

var r, i, l, tests = [ "3x12", "doggy", "5x1", "41x44", "66x", "x3", "0x2", "0x0", "656x0"]; 
r = /^[1-9]\d?x[1-9]\d?/; 
l = tests.length; 
for (i = 0; i < l; i++) { 
     console.log(tests[i], r.test(tests[i])); 
} 

出力

3x12 true 
doggy false 
5x1 true 
41x44 true 
66x false 
x3 false 
0x2 false 
0x0 false 
656x0 false 
関連する問題