728x90
반응형
질문 : (내장) JavaScript에서 문자열이 유효한 숫자인지 확인하는 방법
IsNumeric()
함수와 동일한 개념적 공간에 뭔가가 있기를 바랍니다.
답변
2020 년 10 월 2 일 : 많은 베어 본 접근 방식에는 여기에있는 많은 답변이 고려하지 못하는 미묘한 버그 (예 : 공백, 암시 적 부분 구문 분석, 기수, 배열 강제 변환 등)가 있습니다. 다음 구현은 사용자에게 적합 할 수 있지만 소수점 " .
"이외의 숫자 구분 기호는 제공하지 않습니다.
function isNumeric(str) {
if (typeof str != "string") return false // we only process strings!
return !isNaN(str) && // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)...
!isNaN(parseFloat(str)) // ...and ensure strings of whitespace fail
}
변수(문자열 포함)가 숫자인지 확인하려면 숫자가 아닌지 확인하십시오.
이것은 변수 내용이 문자열인지 숫자인지에 관계없이 작동합니다.
isNaN(num) // returns true if the variable does NOT contain a valid number
예)
isNaN(123) // false
isNaN('123') // false
isNaN('1e10000') // false (This translates to Infinity, which is a number)
isNaN('foo') // true
isNaN('10px') // true
isNaN('') // false
isNaN(' ') // false
isNaN(false) // false
물론 필요한 경우이를 무효화 할 수 있습니다. IsNumeric
예제를 구현하려면 다음과 같이하십시오.
function isNumeric(num){
return !isNaN(num)
}
숫자를 포함하는 문자열을 숫자로 변환하려면:
문자열에 숫자 만 포함 된 경우에만 작동하고, 그렇지 않으면 NaN
합니다.
+num // returns the numeric value of the string, or NaN
// if the string isn't purely numeric characters
예)
+'12' // 12
+'12.' // 12
+'12..' // NaN
+'.12' // 0.12
+'..12' // NaN
+'foo' // NaN
+'12px' // NaN
문자열을 숫자로 느슨하게 변환하려면
'12px'를 12로 변환하는 데 유용합니다. 예 :
parseInt(num) // extracts a numeric value from the
// start of the string, or NaN.
예)
parseInt('12') // 12
parseInt('aaa') // NaN
parseInt('12px') // 12
parseInt('foo2') // NaN These last three may
parseInt('12a5') // 12 be different from what
parseInt('0x10') // 16 you expected to see.
Floats
+num
과 달리 parseInt
(이름에서 알 수 있듯이)는 소수점 뒤의 모든 것을 잘라내어 부동 소수점을 정수로 변환합니다 (이 동작 때문에 parseInt()
를 사용하려는 경우 아마도 더 좋습니다) 대신 다른 방법을 사용하여 ) :
+'12.345' // 12.345
parseInt(12.345) // 12
parseInt('12.345') // 12
빈 문자열
빈 문자열은 다소 직관적이지 않을 수 있습니다. +num
빈 문자열이나 공백이있는 문자열을 0으로 변환하고 isNaN()
은 동일하다고 가정합니다.
+'' // 0
+' ' // 0
isNaN('') // false
isNaN(' ') // false
그러나 parseInt()
는 동의하지 않습니다.
parseInt('') // NaN
parseInt(' ') // NaN
출처 : https://stackoverflow.com/questions/175739/built-in-way-in-javascript-to-check-if-a-string-is-a-valid-number
728x90
반응형
'프로그래밍 언어 > HTML,CSS,JS' 카테고리의 다른 글
JavaScript 대신 TypeScript를 사용해야 하는 이유 (0) | 2021.12.15 |
---|---|
JavaScript에서 호출자 함수를 찾는 방법 (0) | 2021.12.14 |
자바스크립트 변수가 존재하는지 확인하는 방법 (0) | 2021.12.13 |
JavaScript를 사용하여 텍스트 input 필드의 값을 확인하는 방법 (0) | 2021.12.13 |
JavaScript를 사용하여 페이지를 다시 로드하는 방법 (0) | 2021.12.12 |