wiki:Rules/UkrainePhoneNumbers

Version 6 (modified by andygol, 2 years ago) ( diff )

Added page description

Validator Icon, reuploaded icon of andygol but with: (NOZIP) Validation of phone numbers in Ukraine

The phone number must conform to the format +380 aa xxx xxxxx;+380 aaa xx xxxxx;+380 аааа хх ххх, where:

  • +380 is the code of Ukraine,
  • аа / ааа / аааа is the code of the operator or area,
  • ххх хххх / хх хххх / хх ххх - number format for seven-, six- and five-digit numbers that can be used in the local network without using the network code.

Toll-free phones 0 800 ххх ххх must be specified without a country code, the phone:UA key is used to record them.

meta
{
    title: "Ukrainian phone numbers";
    version: "0.12_2022-05-27";
    description: "Verify Ukrainian phone numbers formating and validity. Rules for checking phone number formats in Ukraine. The phone must conform to the format `+380 aa xxx xxxxx;+380 aaa xx xxxxx;+380 аааа хх ххх`, where `+380` is the code of Ukraine, `аа` / `ааа` / `аааа` is the code of the operator or area, `ххх хххх` / `хх хххх` / `хх ххх` - number format for seven-, six- and five-digit numbers that can be used in the local network without using the network code. Toll-free phones `0 800 ххх ххх` must be specified without a country code, the `phone:UA` key is used to record them.";
    author: "andygol";
    icon: "Flag_of_Ukraine_phone_check.svg​";
    link: "https://josm.openstreetmap.de/wiki/Rules/UkrainePhoneNumbers";
    min-josm-version: "11424"; /* due to territory selectors */
    baselanguage: "en"; 
}
meta[lang=uk] {
    title: "Правила перевірки форматів телефонних номерів в Україні";
    description: "Правила перевірки форматів номерів телефонів в Україні. Телефон має відповідати формату `+380 aa xxx xxxxx;+380 aaa xx xxxxx;+380 аааа хх ххх`, де `+380` - код України, `аа` / `ааа` / `аааа` - код оператора чи території, `ххх хххх` / `хх хххх` / `хх ххх` - формат номерів для семи-, шести- та п'ятизначних номерів, що можуть використовуватись в місцевій мережі без використання коду мережі. Телефони `0 800 ххх ххх` мають вказуватись без коду країни, для їх запису використовується ключ `phone:UA`";
}

*[/^(contact:)?(phone|fax)(?!:UA)$/][/^(contact:)?(phone|fax)(?!:UA)$/ !~ /^((;?(?=(\+\b380 [3-9][0-9][0-9 ]{9}\b)|(0 800 \d{3} \d{3}))(?=.*((0 800 \d{3} \d{3})|(\+\b380 (?:\d{2} \d{3} \d{4}|\d{3} \d{2} \d{4}|\d{4} \d{2} \d{3})\b)))((0 800 \d{3} \d{3})|(\+\b380 (?:\d{2} \d{3} \d{4}|\d{3} \d{2} \d{4}|\d{4} \d{2} \d{3})\b)))*)$/][inside("UA")] {
    throwWarning: tr("Incorrect \"phone\" tag");
    suggestAlternative: tr("format +380⎵44⎵123⎵4567;+380⎵352⎵12⎵3456;+380⎵5345⎵12⎵345");
    assertMatch: "node phone=+380 44 366 7002";
    assertNoMatch: "node phone=+38 044 366 7002";
}

*[/^phone$/ =~ /^(;?(0 800 \d{3} \d{3}))*$/][inside("UA")] {
    throwError: tr("{0}", "");
    group: tr("A toll-free phone number is listed in the \"phone\" tag");
    fixChangeKey: "phone=>phone:UA";
    assertMatch: "node phone=0 800 500 609";
    assertMatch: "way phone=0 800 500 609";
    assertNoMatch: "node phone:UA=0 800 500 609";
    assertNoMatch: "way phone:UA=0 800 500 609";
}

Rules_UkrainePhoneNumbers.validator.mapcss, Rules_UkrainePhoneNumbers.zip

Attachments (1)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.