Удаление из строки всех символов кроме цифр и символа + вначале?

131
14 декабря 2018, 14:00

только такие варианты подходят вида +2992924004

не подходят

++39393

++++0202020

3030030+39339

2929+02002+++292929

02020++++++++++

Делаю вот так:

value.replace(/[^+\d]/g, '').replace(/(\d)\++/g, '$1')

но при этом не удаляется плюс, если два вподряд ++, а так такой вариант мне подходит.

Answer 1

function clean(str) { 
  return str.replace(/(?!^\+|\d)./g, "") 
} 
 
document.querySelector('input').addEventListener('input', function (e) { 
  document.querySelector('output').textContent = clean(e.target.value) 
})
input { width: 100%; box-sizing: border-box; }
<input><output></output>

Answer 2

Вы можете использовать

.replace(/^(\+)|\D+/g, "$1")

См. демо регулярного выражения.

  • ^ - начало строки
  • (\+) - Захватывающая подмаска №1: плюс
  • | - или
  • \D+ - один и более знаков, отлчных от цифры.

Если была найдена подмаска №1, её текст вставляется обратно с помощью $1, т.е. если плюса в начале строки не было, его там и не будет.

var strs = ['+2992924004', '++39393', '++++0202020', '3030030+39339', '2929+02002+++292929', '02020++++++++++']; 
for (var value of strs) { 
  console.log(value, "=>", value.replace(/^(\+)|\D+/g, "$1")); 
}

Answer 3

let str = "+38 (099) 999-99-99"; 
alert(str.replace(/ |\-|\)|\(/g,""));

Answer 4

let number_str = "+38 (099) 999-99-99"; 
 
function clear_number(number) 
{ 
  let new_number = number.replace(/[\D]/g,""); 
  if(new_number.length != 0) new_number = "+" + new_number; 
  return new_number; 
} 
 
alert(clear_number(number_str));

READ ALSO
Неправильная кодировка при записи в SQLite базу через JS файл

Неправильная кодировка при записи в SQLite базу через JS файл

Мне нужно создать приложение на NWJS + SQLite

144
Всплывающий блок при клике на кнопку

Всплывающий блок при клике на кнопку

Есть кнопка, как сделать, чтобы при клике, по центру экрана высвечивался блок div и при этом фон позади блока становился затемненным?

196
Как можно найти открытое окно браузера из другого открытого окна?

Как можно найти открытое окно браузера из другого открытого окна?

Запускаю две странички на разных экранахСтранички с одного домена, в обеих могу дописать все что понадобиться

145
Как определить браузер пользователя?

Как определить браузер пользователя?

$browser не работает в последних версиях

148