2017-05-10 95 views
1

我有一段我想从中删除完整的一个字符串,当用户按下单个退格键时。例如像在雅虎邮箱。当我们在“To或CC或BCC”部分撰写电子邮件并写入电子邮件地址时,当用户按下单个退格键时,将删除完整的电子邮件地址。 我想要的功能,但在段落中。从段落中删除完整的一个字符串

+0

我想你的意思是你要删除字符串中的字符,直到你打'space'字符 –

+0

不是单个字符,整个字从一个字符串 – sumair

+0

我没有写一个单个字符我写的字。看看我的答案,例如 –

回答

2

在退格上删除电子邮件地址只是删除字符,直到您点击space(或;取决于您的用例)字符。
所以基本上你真正要问的是:
如何substring字符串的最后部分,而space字符是分隔符。
下面是一个简单的代码片段为例:
编辑
我同时点击退格或删除键更新的片段,以支持插入符号(光标)的位置。

$('#delete').on('click', function(){ 
 
var $input = $('#mystring'); 
 
var nextStr = deleteUpToSpace($input.val()); 
 
    $input.val(nextStr); 
 
}); 
 

 
$('#mystring').on('keyup', function(e){ 
 
    var currentCursorPoisitoin = this.selectionStart; 
 
if(e.keyCode == 8 || e.keyCode == 46){ // backspace or delete keys 
 
    \t var $input = $(this); 
 
    \t var nextStr = deleteBasedOnPosition($input.val(), currentCursorPoisitoin); 
 
$input.val(nextStr); 
 
    } 
 
}); 
 

 
function deleteUpToSpace(str){ 
 
var index = str.lastIndexOf(" "); 
 
var nextStr = str.substring(0, index); 
 
return nextStr; 
 
} 
 

 
function deleteBasedOnPosition(str, position){ 
 
var strUpToPosition = str.slice(0, position); 
 
    var lastIndexOfSpace = strUpToPosition.lastIndexOf(" "); 
 
var strToRemove = strUpToPosition.substring(lastIndexOfSpace, position); 
 
    var nextStr = str.replace(strToRemove, ""); 
 
    return nextStr; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" id="mystring" value="this is a test string"> 
 
<button id="delete">Delete</button>

+0

例如:计算机一个电子设备,它能够接收信息(数据)在一个特定的....我想删除单个退格给出的段落上面的单词。如果用户想要删除单词“信息”,用户从附近特定的鼠标点击然后用户按下退格从这个退格键击中完整的单词“信息”被删除 – sumair

+0

我已经编辑了我的答案以支持'backspace'和'delete'键 –

0

首先,你需要确定这些分开的不同实体分隔。例如,如果您需要删除段落中的最后一个句子,则分隔符就是句号(或者有些人可能称之为句号)。 然后,您可以通过分隔符拆分字符串,删除最后两个元素(因为最后一个元素本质上是未完成的),然后重新加入。

text.split('.').slice(0,-2).join('.') + '.' 

如果您的分隔符是句号。或一般,

text.split(separator).slice(0,-2).join(separator) + separator 

见这个JS拨弄我的示范做:https://jsfiddle.net/tt24kfng/1/

你可以尝试将删除最后一个完成的实体,并保持最后未完成完整的有趣的事情。

1

您可能想要单击退格时删除单词。 您可以使用此代码。

<!doctype html> 
<html> 
<head> 
    <title>Test</title> 
    <meta http-equiv="Content-type" content="text/html;charset=UTF-8"> 
</head> 
<body> 

<textarea id="foo"></textarea> 


<script type="text/javascript"> 

    document.getElementById('foo').addEventListener("keydown",function(event){ 

     if(event.code=="Backspace"){ 
      var text=document.getElementById('foo').value; 
      var lastspace = text.lastIndexOf(" "); 
      var updateStr=text.substring(0,lastspace); 
      document.getElementById('foo').value=updateStr; 

     } 
     }); 

</script> 

</body> 
</html>