에 string
숫자 만 포함되어 있는지 확인하고 싶습니다 . 나는 이것을 사용했다 :
var isANumber = isNaN(theValue) === false;
if (isANumber){
..
}
그러나 그것은 또한 수 있다는 실현 +
하고 -
. 기본적으로 나는 input
숫자 만 포함하고 다른 문자 는 포함하지 않기를 원합니다 . +100
그리고 -5
둘 다 숫자 이므로 isNaN()
올바른 방법이 아닙니다. 아마도 정규 표현식이 필요한 것입니까? 팁이 있습니까?
답변
어때?
var isnum = /^\d+$/.test(val);
답변
string.match(/^[0-9]+$/) != null;
답변
String.prototype.isNumber = function(){return /^\d+$/.test(this);}
console.log("123123".isNumber()); // outputs true
console.log("+12".isNumber()); // outputs false
답변
부동 소수점 값 (점으로 구분 된 값)도 지원하려면이 표현식을 사용할 수 있습니다.
var isNumber = /^\d+\.\d+$/.test(value);
답변
문자열에 숫자 만 포함되어 있는지 확인하는 또 다른 재미 있고 읽기 쉬운 방법이 있습니다.
이 메소드는 spread 연산자를 사용하여 문자열을 배열로 분할 한 다음이 every()
메소드를 사용 하여 배열의 모든 요소 (문자) 가 숫자 문자열에 포함 되는지 테스트합니다 '0123456789'
.
const digits_only = string => [...string].every(c => '0123456789'.includes(c));
console.log(digits_only('123')); // true
console.log(digits_only('+123')); // false
console.log(digits_only('-123')); // false
console.log(digits_only('123.')); // false
console.log(digits_only('.123')); // false
console.log(digits_only('123.0')); // false
console.log(digits_only('0.123')); // false
console.log(digits_only('Hello, world!')); // false
답변
이것은 당신이 원하는 것입니다
function isANumber(str){
return !/\D/.test(str);
}
답변
정규식을 사용하지 않는 솔루션은 다음과 같습니다.
function onlyDigits(s) {
for (let i = s.length - 1; i >= 0; i--) {
const d = s.charCodeAt(i);
if (d < 48 || d > 57) return false
}
return true
}
여기서 48과 57은 각각 “0”과 “9”의 문자 코드입니다.