jav*_*net 5 javascript typescript angular
我有一个 keydown 事件,我希望它在我按下字母数字或特殊字符(如 #$@)时被触发。
<input type="text" style="width: 70%;" [(ngModel)]= "textMessage" (keydown) ="sendTypingEvent()" >
Run Code Online (Sandbox Code Playgroud)
我想限制事件根本不会被触发,例如 enter、escape (esc)、shift、alt、tab、backspace 和 command (meta)、箭头和 f 键(f1 到 f12)。
有没有办法在 HTML 中设置 REGEX 模式?
<input (keydown.a)="..."> --expect to trigger
Run Code Online (Sandbox Code Playgroud)
我可以触发事件并过滤函数调用中的键,如下所示。但是,尝试看看是否还有其他选择。
sendTypingEvent(event) {
if (event.key === "Enter" || event.key ==='esc' .... ) {
console.log("skip this event");
}
}
Run Code Online (Sandbox Code Playgroud)
小智 8
以下是限制 keydown 事件的两种方法 -
sendTypingEvent(event){
if ((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 65 && event.keyCode <= 90)){
console.log("input was 0-9");
console.log("input was a-z");
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
sendTypingEvent(event){
if ((event.keyCode >= 112 && event.keyCode <= 123) || event.keyCode == 16){
console.log("Disabled f11 to f12, shift keys");
return false
}
}
Run Code Online (Sandbox Code Playgroud)
获取该网站的密钥代码 -
document.getElementById("myinput").addEventListener("input", function(event) {\r\n if (/[!\'^+%&/()=?_\\-~`;#$\xc2\xbd{[\\]}\\\\|<>@,]/gi.test(event.data)) {\r\n console.log(event.data) // or\r\n // your operation\r\n }\r\n})Run Code Online (Sandbox Code Playgroud)\r\n<input id="myinput" type="text" style="width: 70%;">Run Code Online (Sandbox Code Playgroud)\r\n在您的情况下,您应该如下编辑触发函数,它将仅在控制台上显示特殊字符
\n\nsendTypingEvent(event) {\n if (/[!\'^+%&/()=?_\\-~`;#$\xc2\xbd{[\\]}\\\\|<>@,]/gi.test(event.key)) {\n console.log(event.key);\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
2921 次 |
| 最近记录: |