Как разрешить только некоторые конкретные символы в строке с помощью jQuery - PullRequest
0 голосов
/ 07 октября 2011

Я заставляю пользователей вводить некоторые теги. Эти теги должны содержать только символы:

  • [a-z]
  • [A-Z]
  • цифры [0-9]
  • и персонаж -

Если присутствует какой-либо другой символ, его следует удалить из строки.

Возможно ли это? Какой самый быстрый способ сделать это?

Ответы [ 3 ]

7 голосов
/ 07 октября 2011

Вы можете назначить обработчик событий keyup соответствующему элементу input и отфильтровать значения, используя этот код:

$("input").keyup(function(){
    var value = $(this).val().replace(/[^-a-zA-Z0-9]/g, "");
    $(this).val(value)
})
  • $("input") выбирает все элементы input. Настройте этот селектор в соответствии с вашими пожеланиями.
  • Событие keyup запускается, когда пользователь отпускает клавишу.
  • $(this).val() возвращает значение текущего элемента ввода.
  • [^-a-zA-Z0-9] соответствует любым недопустимым символам (/[^-a-z0-9]/i имеет тот же эффект)
  • /g - это флаг global , что означает: Соответствие каждому вхождению RegExp.
  • .replace(/.../g, "") заменяет все недопустимые символы пустой строкой (= удаляет все недопустимые символы)
  • $(this).val(value) изменяет значение текущего элемента ввода на допустимую строку.
4 голосов
/ 07 октября 2011

Нет необходимости в jQuery:

str.replace(/[^a-z0-9\-]/ig,"");

Удалит все, что не является буквой, цифрой или тире.

2 голосов
/ 07 октября 2011

Простое регулярное выражение заменяет:

userInputString.replace(/[^a-z0-9\-]/ig, "")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...