ionChange not showing the expected behavior

I have this ion-input here:

            <ion-input type="text" [(ngModel)]="" (ionChange)="handleDate()" ></ion-input>

and I was trying to limit user entry to just numbers and “/” so I did this:

handleDate() {
    if (!/^[0-9/]+$/.test( { =, - 1);

Expected behavior : every time a user enters something other than numbers or “/” it doesn’t get displayed.

Actual behavior : the first invalid character gets erased as expected but the rest still shows up. For example,
if I enter ssss … the first s is handled successfully but the rest still shows up.

Why not use a Pattern Validator:

var NUMBER_REGEXP = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/;

Should the input be part of a form for the pattern validator to be used ? because I don’t use forms … I do old school validation.