2017-09-25 4 views
0

EU-VAT番号の検証には正規表現が必要です。そこにはいくつかのものがありますが、それらはすべて各加盟国に特有であり、私はそのように特定する必要はありません。だから、ユーザーがある長さの文字を最初の文字で入力する必要があるのは、文字でなければならず、いくつかの文字で残りの数字を入力するだけで十分です。EU VAT番号の簡単な正規表現

だから基本的に私は(ハイフンを無視する最初の文字は文字

  • でなければなりません

    • 2-4残りは唯一の数字であるか、または数字
    • の間で最大2つの文字を含めることができます以下のいずれかと一致する必要がありますいくつかの加盟国は、ユーザー)

    は、これまでのところ、私が持っているので、

  • は、(スペースとアンダースコアを無視する)それらを使用します、以下の種類の仕事をしていませんが、残念ながらも、文字のみ(ABCDEFGHIJKLMNOP)ここでlink

    ([A-Za-z]{2,4})([a-zA-Z0-9\-\_ ]{2,12}) 
    

    あなたはすべてのVAT番号のフォーマットを見ることができて、入力に一致しています。文字列の先頭

  • [A-Za-z]{2,4} - - 2 4 ASCIIに https://www.gov.uk/guidance/vat-eu-country-codes-vat-numbers-and-vat-in-other-languages

  • +0

    ので、要件は何ですか?最初の2〜4文字の後に少なくとも1桁と少なくとも1文字が必要ですか?少なくとも1つのハイフン?またはアンダースコア? –

    +0

    あなたの例の 'ABCDEFGHIJKLMNOP'は投稿したルールと一致します。だから明確にするために、少なくとも1つの数字と少なくとも1つの文字を含む最後の部分(2〜12文字)が必要なので、すべての数字またはすべての文字ではありませんか? – Strikegently

    +0

    最初の2〜4文字、半角英数字12文字まで。 – samuelweckstrom

    答えて

    1

    あなたは

    • ^regex demo

      詳細を参照してください

      ^[A-Za-z]{2,4}(?=.{2,12}$)[-_\s0-9]*(?:[a-zA-Z][-_\s0-9]*){0,2}$ 
      

      使用することができます手紙

    • (?=.{2,12}$) - そして、文字列の最後まで、2〜12文字がなければならない(それ問題ではないくらいの文字は、私たちはここに文字列の残りの部分の長さをチェックしているもの)
    • [-_\s0-9]* - ゼロ以上の数字、-_または空白
    • (?:[a-zA-Z][-_ 0-9]*){0,2} - の2つの連続配列に対して0: - ASCII文字
    • [-_\s0-9]* - ゼロ以上の数字、
      • _または空白
    • $ - 文字列の最後、
    +1

    これは完璧です。どうもありがとうございます! – samuelweckstrom

    +0

    注:[CNTR --------]、[CNTR _________](https://regex101.com/r/9tL0Ui/1)などのような他の "freaky"入力があるかもしれません。パターンをより正確にしたいと思うかもしれません(このようなものです)(https://regex101.com/r/9tL0Ui/2)。 –

    +0

    私はそのような入力がどのようにそこに入るのか尋ねてもよろしいですか? – samuelweckstrom