๐Ÿ“• Language/JavaScript

[javascript] <input> ํƒœ๊ทธ์— ์ˆซ์ž๋งŒ ์ž…๋ ฅ (์ •๊ทœ์‹ ์‚ฌ์šฉ)

a n u e 2023. 1. 27. 10:09

 

input ํƒœ๊ทธ์— number ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•จ์— ๋”ฐ๋ผ ํƒ€ ์ปฌ๋Ÿผ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ณ„์‚ฐ๋˜์–ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ,

ํ•ด๋‹น input box์—๋Š” string ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ์•ˆ๋œ๋‹ค.

 

@input ํƒœ๊ทธ๋ฅผ ์จ์„œ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์„ ๊ฐ์ง€ํ•˜๊ณ , ๊ทธ๋•Œ๊ทธ๋•Œ ๊ณ„์‚ฐ์„ ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์—

string์ด ๋“ค์–ด์˜ค๋ฉด ๋ฐ”๋กœ NaN ๊ฐ’์ด ๋˜์–ด๋ฒ„๋ฆฌ๋ฏ€๋กœ, ๋‹ค์‹œ number๋ฅผ ์ž…๋ ฅํ•ด๋„ NaN์ด ๋˜์–ด๋ฒ„๋ ธ๊ธฐ ๋•Œ๋ฌธ์— ๊ณ„์‚ฐ์ด ๋ถˆ๊ฐ€ํ•˜๋‹ค.

 

๊ฒฐ๋ก ์€, input ๋ฐ•์Šค์— ์ž ๊น์ด๋ผ๋„ string์ด ์ž…๋ ฅ๋˜์–ด์„œ๋Š” ์•ˆ๋˜๋Š” ์ƒํ™ฉ

 

 

<์ž˜๋ชป๋œ ๋ฐฉ๋ฒ•>

๋ณดํ†ต ์ด๋ ‡๊ฒŒ type์„ number๋กœ ์ฃผ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์€๋ฐ, ์ด๊ฑด ์ž ๊น์ด๋‚˜๋งˆ string ๊ฐ’์ด ์ž…๋ ฅ๋œ ํ›„ ์‚ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์— @input์— ๊ฐ์ง€๋œ๋‹ค. 

<input type="number" @input="changeYearly($event, rowData, index)"/>

 

 

<ํ•ด๊ฒฐ>

type์„ text๋กœ ๋ฐ”๊พธ๊ณ , oninput์— ์ •๊ทœ์‹์„ ๋„ฃ์–ด ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ฐ’์ด ์ž…๋ ฅ๋˜๋Š” ๊ฒฝ์šฐ replace๋กœ ๋Œ€์ฒดํ•˜๊ฒŒ ํ•œ๋‹ค.

<input
  type="text"
  oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');"
  @input="changeYearly($event, rowData, index)"
/>