LINUX.ORG.RU

Regex Диапазон.

 


0

2

Прошу у вас помощи форумчане.Помогите пожалуйста с настройками диапазона regex под укр номера. Вот сама схема - но сложновато как то получается \([\d]{2,3}\)[ ]{0,2}[\d]{7} [\d]{3}-[\d]{3}-[\d]{2}-[\d]{2} [\d]{3}[- ()]{1}[\d]{3}-[\d]{2}-[\d]{2} [\d]{3}\) [\d]{7} [\d]{3}\) [\d]{3}[ -]{1}[\d]{2}[ -]{1}[\d]{2}[ -]{1} [\d]{12}|[\d]{11} [\d]{10}|[\d]{9} [\d]{3}[- ()]{1}[\d]{3}[- ()]{1}[\d]{2}[- ()]{1}[\d]{2} [\d]{3}[- ()]{1}[\d]{2}[- ()]{1}[\d]{2}[- ()]{1}[\d]{3} [\d]{3}[- ()]{1}[\d]{2}[- ()]{1}[\d]{3}[- ()]{1}[\d]{2} [\d]{3}[- ()]{1}[\d]{7} [\d]{3}[- ()]{1}[\d]{4}[- ()]{1}[\d]{3} [\d]{3}[- ()]{1}[\d]{3}[- ()]{1}[\d]{4} Как правильно вправить в этот код что бы принимало номера с телефонами «+38...» по примеру +38(097)xxxxxxx ? хотя бы один регекс) Благодарю за помощь и с НГ вас.

+38\(\d{3}\)\d{7}

Это просто регулярка которую ты видимо хочешь. Распарсить твою «схему» не могу, это нечитабельно.

vurdalak ★★★★★ ()

Даже макаку лень такое набирать заставила бы задуматься что что-то она делает не так.

anonymous ()
Ответ на: комментарий от anonymous

Извините,скорее всего збило в одну кучу. \([\d]{2,3}\)[ ]{0,2}[\d]{7}

[\d]{3}-[\d]{3}-[\d]{2}-[\d]{2}

[\d]{3}[- ()]{1}[\d]{3}-[\d]{2}-[\d]{2}

[\d]{3}\) [\d]{7}

[\d]{3}\) [\d]{3}[ -]{1}[\d]{2}[ -]{1}[\d]{2}[ -]{1}

[\d]{12}|[\d]{11}

[\d]{10}|[\d]{9}

[\d]{3}[- ()]{1}[\d]{3}[- ()]{1}[\d]{2}[- ()]{1}[\d]{2}

[\d]{3}[- ()]{1}[\d]{2}[- ()]{1}[\d]{2}[- ()]{1}[\d]{3}

[\d]{3}[- ()]{1}[\d]{2}[- ()]{1}[\d]{3}[- ()]{1}[\d]{2}

[\d]{3}[- ()]{1}[\d]{7}

[\d]{3}[- ()]{1}[\d]{4}[- ()]{1}[\d]{3}

[\d]{3}[- ()]{1}[\d]{3}[- ()]{1}[\d]{4} Вот регекс,но я не могу довести его до путя,с комбинацией номеров +38 +38(097)ххх-хх-хх

vaxxxye ()
Ответ на: комментарий от vurdalak

да)уже поправил) извините,просто сбило в кучу. Уже поправил.Ща буду тестить вашу)

vaxxxye ()
Ответ на: комментарий от vurdalak

как то не работает...можно хотя бы пример одной регулярки по типу: [\d]{3}-[\d]{3}-[\d]{2}-[\d]{2} только учитывая +38?

vaxxxye ()
Ответ на: комментарий от vaxxxye

Ты напиши примеров строки, которую нужно матчить.

vurdalak ★★★★★ ()
Ответ на: комментарий от vaxxxye

тебе нужно posix-совместимые? то что ты пишешь - какой-то бред

// ^\+38\(\d{3}\)\d{7}$ регулярка

// тестируем
/^\+38\(\d{3}\)\d{7}$/.test('+38(097)1234567')

и усложняй далее

kiotoze ★★★★ ()
Последнее исправление: kiotoze (всего исправлений: 1)
Ответ на: комментарий от vurdalak

понял,секунду. (xx) xxxxxxx

+38 xxx xxxxxxx

+38 (xxx) xxx xxx x

+380 (xx) xxx-xxx-x

+38 xxxxxxxxxx

+38 xxx xxx xx xx

+38 xxx xxx xxx x

+380 (xx) xxx-xx-xx

+380 (xx) xx-xx-xxx

+38 xxx-xxx-xx-xx

+38 (xxx)-xxx-xx-xx

+38 (xxx)xx-xx-xxx

+380xxxxxxxxxx

вот примерно такие.Буду очень благодарен.

vaxxxye ()
Ответ на: комментарий от kiotoze

если бы это был бред,оно б не работало) Логично?) а так по такой структуре работает)Просто мне кажется проще уже подобрать правельную регулярку по данной структуре чем по новой изобретать велосипед)

vaxxxye ()
Ответ на: комментарий от kiotoze

скорее всего posix) я уже 4 дня мучусь с этим чудом)но уже хочу хоть как то добить до конца)

vaxxxye ()
Ответ на: комментарий от vaxxxye

Рукалицо. Просто, вначале удали из строки все нецифровые символы, затем проверяй простейшей регуляркой в единственно возможном варианте. Мозг не сношай

ovax ★★ ()
Ответ на: комментарий от vurdalak

Вот к примеру эта регулярка " [\d]{3}-[\d]{3}-[\d]{2}-[\d]{2} " отвечает за поиск такого стандарта символов к примеру 097-955-55-55.А как бы подогнать под стандарты с +380 и 38.?

vaxxxye ()
Ответ на: комментарий от vaxxxye

Ну так сделай множество простых выражений и проверяй
К примеру


// выполнять в javascript консоли
var e = /^\+38(?:\s*\d{3}\s*\d{7})|(?:\(\d{3}\)\d{7})$/;
e.test('+38 097 1234567');
e.test('+38(097)1234567');

дополнительные условия под шаблон добавляй через |(?:) так будет намного проще, чем пытаться слепить одно большое выражение на все случаи

kiotoze ★★★★ ()
Ответ на: комментарий от vaxxxye

если бы это был бред,оно б не работало) Логично?)

нет

ты представь что через год, тебе придется добавить еще один формат, будешь 2 дня курить и перепроверять все форматы?

честно говоря, не понял как заставить твой шаблон работать
Проверь результат к примеру +38 (097 123-45-67, будет ли работать, если скобки нету

kiotoze ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.