I am using Angular 19 keydown event on Textbox. It should allow only numbers and decimals up to 2 places. Valid numbers are: 123.45, 675.1, 12345 etc. This works properly for all keys except Spacebar. Even though I have ignored it. On clicking Spacebar, 2 three times it inserts space in Textbox. My code is below: onKeyDown = (event:KeyboardEvent): boolean { const regex = new RegExp(/^[0-9.]*$/); if(!regex.test(event.key) && event.key.length === 1 && event.code !== "Space") { event.preventDefault(); return false; } const target = event.target as HTMLInputElement; const start = target?.selectionStart || 0; const value = target.value.substring(0,start)+event.key+target.value.substring(start); const newRegex = new RegExp(/^(0|[1-9]\d*)?(\.\d{0,2})?$/ if(!newRegex.test(value) && event.key.length === 1 && event.code !== "Space") { event.preventDefault(); return false; } return true; } Continue reading...