Как ограничить какие-либо конкретные символы в текстовом поле для ввода.Я хочу ограничить только ^ и% - PullRequest
0 голосов
/ 05 июня 2018

Я попробовал ниже способ, но он ограничивает все специальные символы.Не уверен, как я могу ограничить только определенные символы.

 $(function(){

$('#test').keypress(function (e) {
    var regex = new RegExp("^[a-zA-Z0-9-]+$");
    var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
    if (regex.test(str)) {
        return true;
    }

    e.preventDefault();
    return false;
});


});

<input type="text" id="test"/>

Ответы [ 3 ]

0 голосов
/ 05 июня 2018

Попробуйте этот код

Ниже будут указаны все буквы, цифры и специальные символы, кроме ^ и%

[a-zA-Z_0-9@\!#\$\&*()+=\-[]\\\';,\.\/\{\}\|\":<>\? ]
0 голосов
/ 05 июня 2018

Вы можете просто проверить, не соответствует ли символ регулярному выражению для either % or ^:

Это регулярное выражение:

/%|\^/

, и это ваш код:

$(function() {

  $('#test').keypress(function(e) {
    var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
    return !(/%|\^/.test(str))
  });


});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="test" />
0 голосов
/ 05 июня 2018

Вам просто нужно убежать от своих символов

var regex = new RegExp("[^\\^\\%]");

Fiddle ==> http://jsfiddle.net/6j8sa9qz/10/

Просто удалите первый ^, если вы хотите разрешить только символы

Кроме того, поскольку регулярное выражение не является динамическим, вы можете объявить его вне функции нажатия клавиши.В противном случае он объявляется снова и снова каждый раз, когда пользователь нажимает клавишу!И на самом деле вам не нужно возвращать true, чтобы вы могли упростить

$(function(){
    var regex = new RegExp("[^\\^\\%]");
    $('#test').keypress(function (e) {

        var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
        if (!regex.test(str)) {
            e.preventDefault();
            return false;
        }
    });


});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...