1

私はRails 4アプリに取り組んでおり、ユーザーアドレスの一部として「B1C 2B3」などのカナダの郵便番号に対して検証する必要があります。

この宝石https://github.com/globaldev/going_postalを見つけましたが、検証のためだけに殺されていると思います。

郵便番号の検証を記述する別の方法はありますか?

4

3 に答える 3

4

gem を追加する代わりに oneliner を要求することは理解していますが、他の人がそのオプションを検討している場合に備えて、validates_zipcode私が書いた gem を使用できます。現在、259 か国の郵便番号形式をサポートしており、そのほとんどはCLDR データベースから取得されており、Rails 3 および 4 とうまく連携しています。カナダもサポートしています :)

次のように使用できます。

class Address < ActiveRecord::Base
  validates_zipcode :zipcode
  # or
  validates :zipcode, zipcode: { country_code_attribute: :postal_code }
end
于 2015-07-07T17:03:31.020 に答える
3

debuggex (優れた正規表現テスト サイト) で、カナダの郵便番号の正規表現が

[ABCEGHJKLMNPRSTVXY]{1}\d{1}[A-Z]{1}[ -]?\d{1}[A-Z]{1}\d{1}

そのパターンに対して文字列をチェックするには、次の検証を行います。

canadian_postal_code = /\A[ABCEGHJKLMNPRSTVXY]{1}\\d{1}[A-Z]{1}[ -]?\\d{1}[A-Z]{1}\\d{1}\z/
validates :postal_code, format: { with: canadian_postal_code }
于 2013-10-14T04:59:25.330 に答える
0

検証では、次のようにする必要があります(すべて単一のスラッシュ、二重ではありません):/\A[ABCEGHJKLMNPRSTVXY]{1}\d{1}[A-Z]{1}[ -]?\d{1}[A-Z]{1}\d{1}\z/

于 2015-03-30T06:14:42.550 に答える