我有一个段落,当用户按下单个退格键时,我想从中删除一个完整的字符串。 例如在雅虎邮件中。当我们在“To或CC或BCC”部分撰写电子邮件和写电子邮件地址时,当用户按下单一退格键时,将删除完整的电子邮件地址。 我想要这个功能,但在段落中。
答案 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
var $input = $(this);
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>
&#13;
答案 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>
答案 2 :(得分:0)
首先,您需要确定分隔这些不同实体的分隔符。例如,如果您需要删除段落中的最后一个句子,则分隔符是句点(或者句号,如某些人可能称之为句点)。 然后,您可以通过分隔符拆分字符串,删除最后两个元素(因为最后一个元素基本上是未完成的),然后重新加入。
text.split(separator).slice(0,-2).join(separator) + separator
如果您的分隔符是句号。或者一般来说,
return http.ajaxRequest("get", "/api/route/hasaccesstoroute?route=viewname").then(function (response) {
if (response == true) {
return true;
}
else {
return { redirect: "#/viewname" };
}
});
请参阅我为演示而制作的JS小提琴:https://jsfiddle.net/tt24kfng/1/
你可以尝试的一件有趣的事情就是删除最后完成的实体并保持最后一个未完整的实体。