首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

HTML Input 刪除鍵按語義刪除整個標籤值:光標位置判斷 + 範圍操作

     編輯:程式設計綜合問答

需求

Input 內容格式:[xq]小強;[xh]小紅;[xm]小明;。光標在哪個名字中,按 Backspace 刪除整個 [tag]名字; 片段。

實現思路

  1. 監聽 keydown 事件,攔截 Backspace(keyCode 8)
  2. 獲取光標位置:input.selectionStart
  3. 根據位置在字符串中定位所屬片段(以 ; 分隔,或正則 \[[^\]]+\][^;]+;)
  4. 用 setRangeText('', start, end, 'select') 替換為空串
  5. event.preventDefault() 阻止默認單字符刪除

關鍵代碼片段

input.addEventListener('keydown', e => {
    if (e.key === 'Backspace') {
        const pos = input.selectionStart;
        const text = input.value;
        // 正則查找光標所在片段邊界
        const regex = /\[[^\]]+\][^;]+;/g;
        let match;
        while ((match = regex.exec(text)) !== null) {
            if (match.index <= pos && pos <= match.index + match[0].length) {
                input.setRangeText('', match.index, match.index + match[0].length);
                e.preventDefault();
                break;
            }
        }
    }
});

參考實現:JavaScript 獲取光標位置並操作文本範圍

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved