繁体   English   中英

按下退格键时删除一组字符(Javascript)

[英]Delete a group of characters when backspace is pressed (Javascript)

我有一个textarea,其中包含用数字和句点初始化的新行:

<textarea autoFocus id="text-area"wrap="hard" 
  defaultValue ={this.state.textAreaVal} onKeyUp={this._editTextArea}/>

为了说明这一点:

  1. 1号线
  2. 2号线
  3. 3号线

我有一个称为onKeyDown的函数,用于检查键码是否为退格键:

_editTextArea: function(event) {
    var key = event.keyCode;
    if (key == 8) {
      //remove the whole line if the previous characters are a number followed by a period and then a space
    } else {
      return true;
    }
  },

我的目标是删除带有一个退格键的数字和句号(如何在Microsoft Word中完成操作,想象当您到达项目符号或数字或罗马数字并按退格键时有一个有序列表,它不仅删除了整个列表项而且还会返回到上一个列表项的最后一个字符。

我该怎么做?

试试这个,应该给你足够的继续。

<p id="demo"></p>

<script>

function myFunction() {
    var str = "Hello world!  12.";

while (str.substring(str.length-1) == "." || isNumber(str.substring(str.length-1)))
{
str = str.substring(0,str.length-1)
}
    document.getElementById("demo").innerHTML = str;
}

function isNumber(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}


</script>

我不知道您到底想要什么,但这可能会帮助您:

$('textarea').keyup(function (e) {
  if (e.keyCode == 8) {
    e.preventDefault();

    var lines = $('textarea').val().split('\n');
    lines.splice(this.value.substr(0, this.selectionStart).split("\n").length-1, 1);
    $('textarea').val(lines.join("\n"));
  }
})

您可以在这里尝试: https : //jsfiddle.net/swnhe2f0/1/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM