Заменить нечисловые символы на JavaScript?

#javascript #jquery #regex

#javascript #регулярное выражение

Вопрос:

Я использую регулярное выражение /^ (90)[2-5]{1}[0-9]{9}$/ для проверки телефона, но когда кто-то вводит какие-либо специальные символы (например, * - / ( ) - _ ) во входных данных, я хочу заменить символы пустой строкой (удалить их). Обратите внимание, что я не хочу заменять .

Как я могу это сделать?

Комментарии:

1. можете ли вы предоставить пример того, что вы хотите сделать?

Ответ №1:

Это приведет к удалению всех нечисловых символов в данной строке:

 myString = myString.replace(/D/g,"");
  

D соответствует всему, что не является числом; d соответствует числу.


Неправильно истолковал вопрос. Чтобы удалить все нечисловые символы, кроме , выполните:

 myString = myString.replace(/[^d ]/g,"");
  

Комментарии:

1. но я хочу только плюс ( ) вы знаете, что мой номер телефона начинается с 90

2. @psygnosis: Извините, я неправильно истолковал ваш вопрос. Просто отредактировал этот ответ решением, которое сохранит знаки .

3. Нет необходимости экранировать внутри группы символов.

4. спасибо, это сработало, если я использую ту же строку кода.. с именем пользователя только символы алфавита myString.replace(/ W / g,»») это работает?

Ответ №2:

 var input = document.getElementById('phone');
input.onkeypress = function(){
    input.value = input.value.replace(/[^0-9 ]/g, '');
}