3

preg_match で入力をチェックする必要があります。これは次の形式でなければなりません: xxx.xxx.xxx ブロックの数は異なる場合があります... これらはすべて有効な入力の例です:

001
00a.00a
0fg.001
aaa.aaa.001
001.001.002.001.001.001

まあ、おそらく次のような正規表現を書くことができます:

^([\da-z]{3}\.?)+$

しかし、ここでピリオドの量指定子の問題が発生します。つまり、「?」を使用する場合です。0 回または 1 回一致するには、どこかでドットをスキップしても一致します。たとえば、次のようになります。

000.001.0010az001

次に、{1} を使用して 1 回一致させると、最後のブロックにはドットがないため、何も一致しません。

だからどう考えたらいいのか分からない… アドバイスお願いします

4

2 に答える 2

4

以下を使用できます。

^[\da-z]{3}(?:\.[\da-z]{3})*$
于 2012-07-11T11:14:41.927 に答える
0
/^(?:[\da-z]{3}\.)*[\da-z]{3}$/
于 2012-07-11T11:18:58.663 に答える