jquery функция преобразует знак «@» в «Q» - PullRequest
0 голосов
/ 19 июня 2020

У меня есть функция I keyup, с помощью которой я хочу определить, является ли последний введенный символ «@».

Функция:

 $("#message").keyup(function (event) {
            var last_one=String.fromCharCode(event.which); 
            console.log(last_one)
            if(last_one == "@"){
                console.log("there you go")
            }
        })

Когда знак '@' вводится в текстовое поле "last_one" отображается как Q на консоли, а два поля появляются в отдельных строках после небольшой задержки. Я попытался проверить флажки if(last_one == "box-sign"), но это не помогло.

1 Ответ

2 голосов
/ 19 июня 2020

EDIT: Прокрутите вниз!

Вы можете использовать функцию .slice(); в JavaScript, чтобы получить последний символ вашей строки.

Пример:

$('#message').on("keyup", function() {
    var str = $(this).val();
    var lastChar = str.slice(-1);

    if(lastChar == "@") {
      alert('There you go!');
    }
});

Функция .slice(); в основном берет длину строки и в этом случае вычитает 1 в индексе, который затем становится последним символом вашей строки. Тогда все, что вам нужно сделать, это сделать свое условное.

Фрагмент:

$('#message').on("keyup", function() {
	var str = $(this).val();
	var lastChar = str.slice(-1);

	if(lastChar == "@") {
	  alert('There you go!');
	}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.min.css" rel="stylesheet"/>
<div class="row d-flex justify-content-center">
	<div class="col-6">
		<input type="text" class="form-control" id="message" placeholder="enter string" />
	</div>
</div>

Пример кода здесь .

РЕДАКТИРОВАТЬ:

Если вы хотите проверить, присутствует ли знак @ где-нибудь в строке, тогда вы можете использовать функцию .indexOf(); и построить на ее основе свое условие.

Пример:

$('#message').on("keyup", function() {
    var str = $(this).val();

    if(str.indexOf("@") > -1) {
      alert('There you go!');
    }
});

Пример кода здесь .

Фрагмент:

$('#message').on("keyup", function() {
	var str = $(this).val();

	if(str.indexOf("@") > -1) {
	  alert('There you go!');
	}
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="row d-flex justify-content-center">
	<div class="col-6">
		<input type="text" class="form-control" id="message" placeholder="enter string" />
	</div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...