最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to trigger keydown event only for alphanumeric and special characters in Angular7? - Stack Overflow

programmeradmin2浏览0评论

I have a keydown event and I want it to be triggered when I press alphanumeric or special characters like #$@.

  <input type="text" style="width: 70%;" [(ngModel)]= "textMessage" (keydown) ="sendTypingEvent()" >

I want to restrict the event NOT to be triggered at all for keys such as enter, escape (esc), shift, alt, tab, backspace and mand (meta), arrows and f keys (f1 though f12).

Is there a way to set up a REGEX pattern at the HTML?

<input (keydown.a)="..."> --expect to trigger

I can have the event triggered and filter the key at the function call as shown below. However, trying to see if there are any other options.

sendTypingEvent(event) {
  if (event.key === "Enter" || event.key ==='esc' .... ) {
    console.log("skip this event");
  }

}

I have a keydown event and I want it to be triggered when I press alphanumeric or special characters like #$@.

  <input type="text" style="width: 70%;" [(ngModel)]= "textMessage" (keydown) ="sendTypingEvent()" >

I want to restrict the event NOT to be triggered at all for keys such as enter, escape (esc), shift, alt, tab, backspace and mand (meta), arrows and f keys (f1 though f12).

Is there a way to set up a REGEX pattern at the HTML?

<input (keydown.a)="..."> --expect to trigger

I can have the event triggered and filter the key at the function call as shown below. However, trying to see if there are any other options.

sendTypingEvent(event) {
  if (event.key === "Enter" || event.key ==='esc' .... ) {
    console.log("skip this event");
  }

}
Share Improve this question asked Jan 16, 2020 at 5:41 javapediajavapedia 2,7316 gold badges31 silver badges57 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 9

Here are two ways to restrict keydown event -

  1. you allow the alphanumeric key press only
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;
    }
  1. You can restrict specific keys
sendTypingEvent(event){
        if ((event.keyCode >= 112 && event.keyCode <= 123) || event.keyCode == 16){
            console.log("Disabled f11 to f12, shift keys");
            return false
        }
}

Get Keycode for this website -

https://keycode.info/

document.getElementById("myinput").addEventListener("input", function(event) {
  if (/[!'^+%&/()=?_\-~`;#$½{[\]}\\|<>@,]/gi.test(event.data)) {
    console.log(event.data) // or
    // your operation
  }
})
<input id="myinput" type="text" style="width: 70%;">

In your case, you should edit your trigger function as below, it will show only special characters on console

sendTypingEvent(event) {
  if (/[!'^+%&/()=?_\-~`;#$½{[\]}\\|<>@,]/gi.test(event.key)) {
    console.log(event.key);
  }
}

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论