Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.07.2021, 09:59
Профессор
Отправить личное сообщение для Vaska Посмотреть профиль Найти все сообщения от Vaska
 
Регистрация: 08.05.2017
Сообщений: 178

Помогите исправить регулярное выражение
Приветствую!
Применяю регулярное выражение, для номера телефона
((\+?\d{1,3}[\d{2,}\.\- \(\)]{11,}))|(\+?[\d]{10,})/gm

По задумке, должно работать только с телефонами состоящими из 10 и 11 цифр.
В данном виде, видит цифры которые больше 9 цифр.
Однако в этом регулярном выражении есть недостаток, выражение цепляет цифры, в которых больше 11 цифр.
Можно исправить выражение, чтобы оно не работало с цифрами, у которых больше 11 цифр? А работало только с цифрами от 10-11.

Заранее спасибо, за помощь!
Ответить с цитированием
  #2 (permalink)  
Старый 08.07.2021, 11:32
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,225

Vaska, приведи примеры "правильных" номеров и "не правильных"...
Ответить с цитированием
  #3 (permalink)  
Старый 08.07.2021, 12:45
Профессор
Отправить личное сообщение для Vaska Посмотреть профиль Найти все сообщения от Vaska
 
Регистрация: 08.05.2017
Сообщений: 178

ksa,
Здесь тестировалось выражение https://regex101.com/r/IJX37n/1
Это выражение я применю, чтобы вырезать из текста номера телефонов написанного в разных вариантах.

Однако, в тексте, на сайте, вставляются фотки, у которых название 1_2017092902182426089.jpg, 123451_2017092902182426089.png.
выражение вырезает из названия фотки 11 символов.
Это нужно бы пофиксить.

Последний раз редактировалось Vaska, 08.07.2021 в 13:00.
Ответить с цитированием
  #4 (permalink)  
Старый 08.07.2021, 13:50
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,225

Сообщение от Vaska
на сайте, вставляются фотки, у которых название 1_2017092902182426089.jpg, 123451_2017092902182426089.png.
выражение вырезает из названия фотки 11 символов.
Это нужно бы пофиксить.
Т.е. тебе нужно из таких названий взять какие-то 11 цифр?
Каких именно?
11 последних?
Ответить с цитированием
  #5 (permalink)  
Старый 08.07.2021, 14:49
Профессор
Отправить личное сообщение для Vaska Посмотреть профиль Найти все сообщения от Vaska
 
Регистрация: 08.05.2017
Сообщений: 178

Сообщение от ksa Посмотреть сообщение
Т.е. тебе нужно из таких названий взять какие-то 11 цифр?
Каких именно?
11 последних?
Нет, мне нужно, чтобы регулярное выражение не трогало имена файлов, в которых есть цифры.
Задача, с помощью регулярного выражения вырезать из текста номера телефонов, а другие данные, не трогать.
А сейчас регулярное выражение вырезает из названия файла изображений кусок названия. И пути к файлам фоток получаются битые. Это неправильно.
Ответить с цитированием
  #6 (permalink)  
Старый 08.07.2021, 14:52
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,225

Сообщение от Vaska
мне нужно, чтобы регулярное выражение не трогало имена файлов, в которых есть цифры
Тогда покажи примеры текстов, где есть телефоны и те имена файлов...
Ответить с цитированием
  #7 (permalink)  
Старый 08.07.2021, 15:00
Профессор
Отправить личное сообщение для Vaska Посмотреть профиль Найти все сообщения от Vaska
 
Регистрация: 08.05.2017
Сообщений: 178

ksa,
по ссылке же есть весь комплект.
Ответить с цитированием
  #8 (permalink)  
Старый 08.07.2021, 15:02
Профессор
Отправить личное сообщение для Vaska Посмотреть профиль Найти все сообщения от Vaska
 
Регистрация: 08.05.2017
Сообщений: 178

ksa,
Там в результате работы выражения, получается:
Цитата:
1_убито jpg
123451_убито png
А должно быть не убито
Цитата:
1_2017092902182426089.jpg
123451_2017092902182426089.png
Ответить с цитированием
  #9 (permalink)  
Старый 08.07.2021, 15:57
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,225

Сообщение от Vaska
по ссылке же есть весь комплект
Я по ссылкам не хожу...

Сообщение от Vaska
А должно быть не убито
Я понял твою проблему. Осталось увидеть текст, который ты обрабатываешь...
Ответить с цитированием
  #10 (permalink)  
Старый 08.07.2021, 16:21
Профессор
Отправить личное сообщение для Vaska Посмотреть профиль Найти все сообщения от Vaska
 
Регистрация: 08.05.2017
Сообщений: 178

Сообщение от ksa Посмотреть сообщение
Я по ссылкам не хожу...
По ссылке сервис по отладке регулярок, все там отлаживают.
Ну если ты им не пользуешься, то тогда вот текст:
Цитата:
Вариантов написания телефонов достаточно много.
Телефоны имеют разное количество цифр: 10, 11, 12.
Разное написание:
+7 999 999 99 99
7 999 999 99 99
+7999 999 99 99
7999 999 99 99
+7999-999-99-99
7999-999-99-99
+7999-999-9999
7999-999-9999
+7999-9999999
7999-9999999
+79999999999
79999999999
+7.999.999.99.99
+7(999) 999-99-99
+123 (999) 555-66-29
+555 (999) 555-66-29
и вместо цифры страны с оной цифрой 7, есть коды по 2 и по 3 цифры.
Можно придумать и ещё много вариантов написания номера телефона.
Как это всё учесть в выражении?
В тексте могут содержаться ссылки на фотографии и ссылки на страницы сайта, в которых могут быть цифры. Как не зацепить цифры в ссылках? Как их отсортировать от номеров телефонов?
1_2017092902182426089.jpg
123451_2017092902182426089.png
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите перенести регулярное выражение из php в js. veltony Общие вопросы Javascript 9 09.06.2016 19:57
Регулярное выражение, помогите плиз Frozen Coyote Общие вопросы Javascript 20 20.04.2016 18:08
Регулярное выражение, помогите плиз Frozen Coyote Общие вопросы Javascript 0 15.04.2016 00:13
Помогите составить регулярное выражение yura29 Общие вопросы Javascript 3 08.06.2014 00:35
Помогите написать регулярное выражение bigjoy Общие вопросы Javascript 2 15.02.2014 23:23