1

正確に 6 桁、8 桁、または 10 桁の数字を一致させる方法は?

"787876" =~ /^\d{6}$/ -> TRUE
"78787633" =~ /^\d{8}$/ -> TRUE
"7878733226" =~ /^\d{10}$/ -> TRUE
"7878736" =~ /^\d{6}$/ -> FALSE

これらの場合に 1 つの正規表現を作成する方法を教えてください。以下の短縮形:

"787876" =~ /^\d{6}$|^\d{8}$|^\d{10}$/ 
4

4 に答える 4

4

この正規表現を使用します^\d{6}(\d{2}){0,2}$

于 2012-08-02T10:53:44.017 に答える
1

別の解決策:/^\d{10}|\d{8}|\d{6}$/

于 2012-08-02T11:07:32.720 に答える
1

大量のデータを扱っている場合、サブマッチを実行してサブ結果を保存するための括弧がないため、これは良いオプションかもしれません。

/^\d{2}{3,5}$/

私見、正規表現を書くには2つの原則があります。

  1. もちろん、コメントを残すこともできますが、より直感的であるほど、間違いを犯す可能性は低くなります。
  2. サブマッチを実行したくない場合は、括弧を使用しないようにしてください。サブマッチの結果は配列にグループ化され、余分なスペースが必要になるからです。
于 2012-08-03T06:21:34.523 に答える
1

私が考えることができる最短の形式はこれです:

/^(\d\d){3,5}$/

それは 3 ~ 5 組の数字です。

于 2012-08-02T12:20:29.510 に答える