javascript - Textarea 块重音字母和 alt 代码符号
问题描述
我目前正在阻止 javascript 字符代码,但它不会阻止重音字母和 alt 代码符号,例如 è、á、☺、♥ 等。
$("#cstedit-addembossing").keypress(function(e) {
var key = e.which;
if(key > 32 && (key < 48 || key > 57) &&(key < 65 || key > 90) && (key < 97 || key > 122)) {
return false;
}
});
我希望它不允许这些字符。
解决方案
考虑将您允许的字符列入白名单,而不是将您禁止的字符列入黑名单。input
我使用该事件取得了一些成功,即使在 ALT 键组合之后(例如重音字母) ,它似乎也会触发。
下面,只允许使用字母和数字。重音字母首先转换为非重音字母,但如果您不想要它,您可以删除该部分。
我从Lewis Diamond的回答中得到了转换重音字符的代码。
$('#cstedit-addembossing').on('input', function() {
let $this = $(this);
let newVal = $this.val()
.normalize('NFD').replace(/[\u0300-\u036f]/g, "")
.replace(/[^0-9A-Za-z]+/g, '');
$this.val(newVal);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea id="cstedit-addembossing"></textarea>
推荐阅读
- flutter - 使用提供程序时 Flutter 小部件未更新
- php - 如何在 laravel 中处理同时保存 API 请求?
- visual-studio-code - 配置 VS Code 以在使用 Ctrl/Cmd+P 打开文件时切换到另一个选项卡组中已打开的选项卡
- apache-kafka - KSQL所有消息在流中失败并且主题中有数据
- jekyll - Jekyll Liquid:从 iframe 中删除宽度/高度?
- python - python博主获取token
- python - 如何填充可变长度多元时间序列数据?
- javascript - 作为参数传递的变量返回未定义的 JS
- python - 我如何使用 google ngram viewer 和 python 获得一个句子的出现?
- python - Pytorch 预测变得相同