簡體   English   中英

從段落中刪除完整的一個字符串

[英]Delete complete one string from a paragraph

我有一個段落,當用戶按下單個退格鍵時,我想從中刪除一個完整的字符串。 例如在雅虎郵件中。 當我們在“To或CC或BCC”部分撰寫電子郵件和寫電子郵件地址時,當用戶按下單一退格鍵時,將刪除完整的電子郵件地址。 我想要的功能,但在段落中。

刪除退格鍵上的電子郵件地址只是刪除字符,直到您訪問space (或;取決於您的用例)char。
所以基本上你在這里問的是:
如何在space字符是分隔符的情況下對substring的最后部分進行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> 

您可能希望在單擊退格時刪除單詞。 您可以使用此代碼。

<!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>

首先,您需要確定分隔這些不同實體的分隔符。 例如,如果您需要刪除段落中的最后一個句子,則分隔符是句點(或者句號,如某些人可能稱之為句點)。 然后,您可以通過分隔符拆分字符串,刪除最后兩個元素(因為最后一個元素基本上是未完成的),然后重新加入。

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

如果你的分隔符是一個句號。 或一般來說,

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

看到我為演示而制作的JS Fiddle: https//jsfiddle.net/tt24kfng/1/

您可以嘗試的一個有趣的事情是刪除最后完成的實體並保持最后一個未完成的實體。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM