1

テキスト領域があり、ユーザーは米国の郵便番号をカンマまたは (カンマとスペース) で区切って入力できます。

12345、45678、89654 のようになります。

次の正規表現は機能しており、許可されていない文字を削除しています:

$object.val($object.val().replace(/[^\d\, ]/g, ''));

充実させたいので、

  1. 先頭は常に 5 桁にする必要があります
  2. 5 桁の後には、カンマまたはカンマとスペースが必要です
  3. カンマまたは (カンマとスペース) は、文字列の最後にあってはなりません。末尾が 5 桁の数字である必要があります。

これはコピーペーストにも取り組む必要があります。ユーザーは、郵便番号の無効な長さをコピーして貼り付ける可能性があります。

ありがとう

4

3 に答える 3

2

次の正規表現を使用します。 ^\d{5}(, ?\d{5})*$

先頭に 5 桁を指定し^\d{5} 、その他のコンマ、スペース、および 5 桁の任意の数の組み合わせを指定します。(, ?\d{5})*

于 2013-09-27T14:55:57.567 に答える
1

以下を使用できます。

var s='12345,45678, 12345';
var m = s.match(/^(?:\d{5},\s?)*\d{5}$/);
于 2013-09-27T14:57:14.267 に答える