现有一需求,禁止手机键盘的表情输入
使用正则校验:
replace(/[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/gi, '')
用在输入框或者文本框中,只需要做监听,然后删除掉检测掉的表情就可以了,代码:
<textarea id="aiInputText" type="text" placeholder="请输入你的问题"></textarea>
let aiInputText = document.querySelector("#aiInputText");
aiInputText.addEventListener("input", function (){
// 获取输入的值
var inputValue = aiInputText.value;
// 替换所有表情符号
var newInputValue = inputValue.replace(/[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/gi, '')
// 如果值发生了改变,更新输入框的值
if (inputValue !== newInputValue) {
aiInputText.value = newInputValue;
}
})