我必須能夠只寫字符,有和沒有重音符號,每行最多 45 個字符,最多 3 行,從而防止在文本區(qū)域中使用 JS 的表情符號。它必須從打字或粘貼開始。這是限制字符的工作部分,但它不會過濾表情符號。記者: $('#config_desc').on('keydown', function(e) { const newLine = /\r*\n/g; const value = e.target.value; const newLines = (value.match(newLine) || []).length; const lines = value.split(newLine); //enter if (e.keyCode === 13 && lines.length >= e.target.rows) { e.preventDefault(); return; } const lineNo = value.substr(0, e.target.selectionStart).split(newLine).length - 1; //backspace if (e.keyCode === 8 && ~value.charAt(e.target.selectionStart - 1).search(newLine)) { if (lines[lineNo].length + lines[lineNo - 1].length <= e.target.cols) return; e.preventDefault(); return; } //del if (e.keyCode === 46 && ~value.charAt(e.target.selectionStart).search(newLine)) { if (lines[lineNo].length + lines[lineNo + 1].length <= e.target.cols) return; e.preventDefault(); return; } if (e.key.length > 1) return; if (value.length < e.target.cols) return; if (lines[lineNo].length > e.target.cols - 1) { if (lines.length < e.target.rows) { const col = (e.target.selectionStart - newLines) / lines.length; let p1 = value.substr(0, e.target.selectionStart); if (col === e.target.cols) { p1 += '\r\n' + String.fromCharCode(e.keyCode); } else { p1 += String.fromCharCode(e.keyCode) + '\r\n'; } e.target.value = p1 + value.substr(e.target.selectionStart, value.length); e.target.selectionStart = p1.length - 1; e.target.selectionEnd = p1.length - 1; } e.preventDefault(); return; } });HTML: <textarea cols="50" rows="3" class="form-control" maxlength="150" id="config_desc" name="config_desc"></textarea>當(dāng)我添加此正則表達(dá)式以禁止表情符號時,無法添加換行等。value.replace(/[^ -\u2122]+ +| *[^ -\u2122]+/ug,'')
在輸入中僅禁止所有表情符號(但不包括重音、分頁等),并使用 JS 限制行的長度
汪汪一只貓
2022-12-29 10:34:40