我有一个段落,当用户按单个退格键时,我想从中删除一个完整的字符串。 例如在雅虎邮件中。当我们撰写电子邮件并在“收件人或抄送或密件抄送”部分写入电子邮件地址时,当用户按单个退格键时,完整的电子邮件地址将被删除。 我想要那个功能,但在段落中。
最佳答案
使用退格键删除电子邮件地址只是删除字符,直到您点击空格
(或;
取决于您的用例)字符。
所以基本上你在这里真正要问的是:
如何在 space
字符作为分隔符时 substring
字符串的最后部分。
这是一个简单的片段作为示例:
编辑:
我更新了代码片段以在单击退格键或删除键时支持插入符号(光标)位置。
$('#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>
关于javascript - 从段落中删除完整的一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43890071/