Есть строка, например <p:+79993333311@example.com>
, где +79993333311 это номер телефона, причем он может быть в разных форматах, предлагаю на этом не зацикливаться... В общем его нужно извлечь, мы знаем что все остальное примерно постоянное, предлагаю следующий код:
var item = '<p:+79993333311@example.com>'; //может быть 79993333311 или 89993333311 или 9993333311 или еще что то
let phone = item.replace(/\s+/g,'');
phone = phone.replace('<sip:','');
phone = phone.replace('@','');
phone = phone.replace('example.com','');
phone = phone.replace('>','');
Мне лично это все очень не нравиться и мне кажется можно сделать проще, и я не об этом:
let phone = item.replace(/\s+/g,'');
phone = phone.replace('<sip:','');
phone = phone.replace('@example.com>','');
Такое решение суть моего вопроса не меняет.
Регулярное выражение на пол экрана то же не вариант.
Как можно решить эту задачу более рационально и красиво, нежели те решения что я предложил?
Ну примерно, так:
var item = '<p:+79993333311@example.com>';
console.log(item.replace(/<p:(.+)@.+/,'$1')); // +79993333311
Если не знаем какой тег между <
и :
(и если вдруг есть пробелы или другие символы) то можно сделать например так:
var item = '< tag :+79993333311@example.com>';
console.log(item.replace(/<[^:]+:(.+)@.+/,'$1')); // +79993333311
Напомните, почему нельзя просто найти подстроку по крайним элементам без всяких replace и регулярок?
Думаю, такой способ быстрее и проще.
let phone = '<p:+79993333311@example.com>'
console.log(phone.substr(phone.indexOf(':') + 1, phone.indexOf('@') - 3))
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как можно преобразовать [object File] в array? На входе имею файл с расширениемhtml и нужно его содержимое внести в массив в любом виде ( весь файл str в один...
Есть два input type range/ При передвигание одного ползунка, срабатывает второй тоесть повторяет такие же движениеК примеру первый ползунок идет...
Делаю свой кастомный autocomplete на React, он получает входные данные типа:
Может кто сталкивался с такимКак вывести виджет weibo на страницу? У них изменился порядок подключения виджета в 2017 году