Регулярен израз за валидиране на UA номер на Google Анализ

Не ми е 100 процента ясно, че UA номерата на Google Анализ винаги са 6 цифри, тире и 2 цифри, както Google често споменава в своята документация. Има чести контрапримери, които използват по-малко от 6 за частта на акаунта и 1-4 за профила. Всички примери винаги показват числа, но дори не е ясно, че те не могат да бъдат букви.

Някой знае ли дали Google е публикувал регулярен израз, който точно съвпада с допустимите UA числа? Добавям тази функция към административната конзола на приложение, върху което работя, и бих искал да потвърдя въведеното от потребителя.


person Otis    schedule 23.03.2010    source източник


Отговори (2)


Може би няма фиксиран диапазон от цифри. 6 цифри за номера на акаунта биха ограничили Google до 1 000 000 потребители. Сигурен съм, че Google се цели по-високо от това. Този елемент с ЧЗВ за Google Анализ показва UA-xxxxxxx-y като примерен номер на сметка (7 + 1 цифри). Предполагам, че само UA и тиретата са фиксирани и че броят на цифрите се разширява с нарастването на броя на потребителите и профилите. напр. за да разрешите 4 до 10 цифри за потребителя и 1 до 4 цифри за профила, можете да използвате този регулярен израз в стил Perl:

\bUA-\d{4,10}-\d{1,4}\b

Ако трябва да работи с ограничения синтаксис на регулярен израз на Google Анализ опитайте това:

UA-[0-9]+-[0-9]+
person Jan Goyvaerts    schedule 23.03.2010
comment
Да, казах, че е 6, защото не броих, само един бърз поглед. :p Аз също клонях към втория регулярен израз, но не бях сигурен дали позволяват букви. - person Otis; 23.03.2010
comment
Карло в тази тема carlorizzante.com/2011/ заявява че UA-1234567 все още е валиден ID. Предпочитам да бъда консервативен и да се опитам да не отхвърлям евентуално валиден код, така че мисля, че ще използвам: \bUA-\d{4,10}(-\d{1,4})?\b - person ThisGuy; 02.08.2012
comment
Добре, /\bUA-\d{4,10}-\d{1,4}\b/ работи чудесно за :format в Ruby валидатори. Благодаря! - person Eric Tjossem; 10.01.2013

От средата на 2021 г. вече има допълнителни формати и може да има още формати в бъдеще. Има модел, който ще работи за почти всички активни формати и вероятно ще бъде спазен за бъдещи формати.

/^[A-Z][A-Z0-9]?-[A-Z0-9]{4,10}(?:\-[1-9]\d{0,3})?$/

(маркирането на синтаксиса на регулярен израз на stackoverflow изглежда не харесва ^)

Съществуващите кодове включват: UA YT MO G DC AW

UA-12345-1 G-J2DV45G DC-JGWWE32 AW-GER322

Ако се опитвате да съпоставите код в по-дълъг низ, опитайте да използвате опцията граница на думата \b...

/\b[A-Z][A-Z0-9]?-[A-Z0-9]{4,10}(?:\-[1-9]\d{0,3})?\b/

Обяснение (без добавки ^|$|\b):

  • Съпоставете единичен знак в списъка по-долу [A-Z]
  • A-Z съвпада с един знак в диапазона между A (индекс 65) и Z (индекс 90) (малки и малки букви)
  • Съпоставете единичен знак в списъка по-долу [A-Z0-9]
  • ? съвпада с предишния токен между нула и един пъти, колкото е възможно повече пъти, връщайки обратно, колкото е необходимо (алчен)
  • A-Z съвпада с един знак в диапазона между A (индекс 65) и Z (индекс 90) (малки и малки букви)
  • 0-9 съвпада с един знак в диапазона между 0 (индекс 48) и 9 (индекс 57) (малки и малки букви)
  • - съответства на символа - с индекс 4510 (2D16 или 558) буквално (малки и малки букви)
  • Съвпада с един символ, присъстващ в списъка по-долу [A-Z0-9] {4,10} съвпада с предишния символ между 4 и 10 пъти, колкото е възможно повече пъти, връщайки обратно, ако е необходимо (алчен)
  • A-Z съвпада с един знак в диапазона между A (индекс 65) и Z (индекс 90) (малки и малки букви)
  • 0-9 съвпада с един знак в диапазона между 0 (индекс 48) и 9 (индекс 57) (малки и малки букви)
  • Група без прихващане (?:-[1-9]\d{0,3})?
  • ? съвпада с предишния токен между нула и един пъти, колкото е възможно повече пъти, връщайки обратно, колкото е необходимо (алчен)
  • \- съответства на знака - с индекс 4510 (2D16 или 558) буквално (малки и малки букви)
  • Съвпада с един знак в списъка по-долу [1-9] 1-9 съвпада с един знак в диапазона между 1 (индекс 49) и 9 (индекс 57) (малки и малки букви)
  • \d съвпада с цифра (еквивалентно на [0-9]) {0,3} съвпада с предишния токен между 0 и 3 пъти, колкото е възможно повече пъти, връщайки при необходимост (алчен)
person Harry B    schedule 06.08.2021