删除输入中的字符串

时间:2018-11-27 12:14:34

标签: javascript jquery angular7

<input placeholder="#hashtags" type="text" (keydown)="backKeyValidation($event)">

 backKeyValidation(evt) {
    let value = evt.target.value ;
    }

例如-

input value = smk #k l#ls #l s# #sde

delete with backspace of #sde till its "#"  of "sde"-- last hash;
after that delete and update input as-  smk #k l#ls #l

同样,休息也应该被删除; 这里的值就像#smk #k l#ls #l s# #s; 我想用#删除最后一个字符串,以明智地删除字符,然后当它到达最后一个'#'时,应删除完整的“#和其他字符串”

这意味着-delete from "#" to "#"并在输入退格键时也更新输入。

1 个答案:

答案 0 :(得分:0)

如果您使用的是普通javascript,则这不是绑定事件的方式。

我的解决方法是:

  • 将html代码与html文件分开
  • keydown
  • 绑定事件监听器

运行代码段并进行测试:

const filteredInput = document.getElementById('filtered-input');

filteredInput.addEventListener('keydown', function (e) {
  let value = e.target.value;
  // 8 is keyCode for backspace on windows 
  // or delete button on mac
  if(e.keyCode === 8) {
    //if there is a last hash tage
    // thene delete it with word
    if(value.lastIndexOf("#") !== -1) {
       value = value.slice(0, value.lastIndexOf("#"));
    }
  }
  this.value = value;
});
<input type="text" id="filtered-input">

这只是一个简单的示例,可以给您一个想法。希望对您有所帮助。