Определение текста “/cmd param” в input'е

154
05 июля 2019, 00:20

Доброго времени суток.

Играл кто в SAMP (San Andreas Multiplayer), да и не только там есть такое понятие как команды, но как пример возьму именно эту игру.

В общем, в чате, при вводе текста типо /cmd или /cmd param - происходит какое-то действие, в зависимости от команды.

Хочу такое же реализовать в обычном input.

Нет, не вот таким вот вариантом if($(input).val() == '/cmd')..
Прям как там, т.е. если input.val() начинается с / (слеша), то определяем какая команда идёт после слеша и есть ли параметры.

Как такое можно реализовать? И как будет грамотнее?

UPD 12 минут спустя

Накатал вот такое вот:

$('.s').on('click',function(){ 
	var inputVal = $('.c').val(); 
  if(inputVal[0]=='/') { 
  	inputVal = inputVal.slice(1); 
  	console.info('cmd? true'); 
    cmdInput(inputVal.split(' ')); 
  } else console.info('cmd? false'); 
}); 
 
function cmdInput(arr) { 
	let cmd = arr[0], param = arr[1]; 
  console.info('\ncmd: '+cmd+'; \nparam: '+param+';'); 
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<input class="c" type="text" value=""> 
<input class="s" type="button" value="click">

Answer 1

В общем я сделал.

В сниппете работают команды /hello и /stack.

$('#search').bind('submit', function(){ 
let thisVar = $(this).find('input[name="q"]').val(); 
if(thisVar[0]=='/') { 
	let str = thisVar.slice(1), cmd = str.split(' ', 1).toString(), param = str.split(' ').slice(1).join(' '); 
  // cmd list 
  if(cmd=='hello') alert('Hello World!'); 
  else if(cmd=='stack') { 
    if(param=='overflow') alert('Приветствую на StackOverflow'); 
    else alert('Попробуйте /stack overflow'); 
  } 
  // not cmd 
  else alert('Такой команды не существует'); 
  $(this).find('input[name="q"]').val(''); 
	return false; 
} 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 
 
<form id="search" action="/search" method="get"> 
  <input type="text" name="q" placeholder="Search" value="" autocomplete="off"> 
  <input type="submit" value="Search"> 
</form>

READ ALSO
input type file

input type file

Подскажите как перебрать в jquery картинки из массива

127
Как разрешить модель-представление в PRISM

Как разрешить модель-представление в PRISM

Всем привет! Использую Prism c Unity iocЕсть две модели-представления

134
C# List удалить элемент списка

C# List удалить элемент списка

Игра состоит из блоков List<Block>И пуль Bullet

164