반응형
Typescript에서 문자열이 숫자인지 확인하는 방법
Typescript에서 isNaN은 숫자 값만 허용한다는 오류를 보여줍니다.
isNaN('9BX46B6A')
다음으로 parseFloat('9BX46B6A')
평가 되기 때문에 false를 반환 합니다.9
isNaN(parseFloat('9BX46B6A'))
Visual Studio에 오류가 표시되어 계속 실행할 수 있지만 올바른 방법으로 수행하고 싶습니다.
현재이 수정 함수를 작성했습니다.
static isNaNModified = (inputStr: string) => {
var numericRepr = parseFloat(inputStr);
return isNaN(numericRepr) || numericRepr.toString().length != inputStr.length;
}
숫자로 된 문자열로 변환하는 방법은 함께 Number
하지 parseFloat
.
Number('1234') // 1234
Number('9BX9') // NaN
속기를 원하는 경우 단항 더하기 연산자를 사용할 수도 있습니다.
+'1234' // 1234
+'9BX9' // NaN
NaN을 점검 할 때주의하십시오 (운영자 ===
와 !==
예상대로 작동하지 않음 NaN
). 사용하다:
isNaN(maybeNumber) // returns true if NaN, otherwise false
rxjs 라이브러리 의 isNumeric 연산자를 사용하여 해결했습니다 ( rxjs / util / isNumeric 가져 오기
최신 정보
import { isNumeric } from 'rxjs/util/isNumeric';
. . .
var val = "5700";
if (isNumeric(val)){
alert("it is number !");
}
function isNumber(value: string | number): boolean
{
return ((value != null) && !isNaN(Number(value.toString())));
}
기존의 이미 테스트 된 솔루션을 선택합니다. 예를 들어 typescript의 rxjs는 다음과 같습니다.
function isNumeric(val: any): val is number | string {
// parseFloat NaNs numeric-cast false positives (null|true|false|"")
// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
// subtraction forces infinities to NaN
// adding 1 corrects loss of precision from parseFloat (#15100)
return !isArray(val) && (val - parseFloat(val) + 1) >= 0;
}
문자열을 숫자로 구문 분석 할 수 있는지 여부는 런타임 문제입니다. Typescript는 컴파일 타임 (런타임 아님) 안전에 중점을두기 때문에이 사용 사례를 지원하지 않습니다.
참고 URL : https://stackoverflow.com/questions/23437476/in-typescript-how-to-check-if-a-string-is-numeric
반응형
'IT story' 카테고리의 다른 글
점 표시기를 사용하여 Android View Pager를 어떻게 만듭니 까? (0) | 2020.06.25 |
---|---|
텍스트 영역에서 줄 바꿈을 어떻게 제거합니까? (0) | 2020.06.25 |
PDO 준비 단일 쿼리에 여러 행을 삽입합니다 (0) | 2020.06.25 |
크롬 개발자 도구에서 사람이 읽을 수있는 자바 스크립트 (0) | 2020.06.25 |
HTML5 모드에서 AngularJS 애플리케이션을 URL 재 작성을 위해 IIS를 구성하려면 어떻게해야합니까? (0) | 2020.06.25 |