답변:
어때?
var isnum = /^\d+$/.test(val);
\d
이다 정확히 동일합니다 [0-9]
.
/^\d*$/
대신 숫자 만 포함 된 빈 문자열을 찾으면 .
String.prototype.isNumber = function(){return /^\d+$/.test(this);}
console.log("123123".isNumber()); // outputs true
console.log("+12".isNumber()); // outputs false
isNumber = () => /^\d+$/.test(this);
하는 대신, 사용 등console.log(isNumber("123123));
부동 소수점 값 (점으로 구분 된 값)도 지원하려면이 표현식을 사용할 수 있습니다.
var isNumber = /^\d+\.\d+$/.test(value);
\d+
를로 변경하면 \d*?
0-9와 일치 할 수있을뿐만 아니라 .333
var isNumber = /^\d*\.?\d+$/.test(value)
- '3.5', '.5', '3'과 일치- '3'과 일치하지 않습니다
문자열에 숫자 만 포함되어 있는지 확인하는 또 다른 재미 있고 읽기 쉬운 방법이 있습니다.
이 메소드는 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
true
빈 문자열 ''
과 빈 배열 []
, 정수 배열을 반환 합니다 [1, 2, 3]
(한 번은 <10 임). /^\d+$/
내가 생각 하는 기본 정규 표현식보다 버그 / 오용이 더 쉽다
function isNumeric(x) {
return parseFloat(x).toString() === x.toString();
}
이것은 false
선행 또는 후행 0이있는 문자열에서 반환 됩니다.
float 값을 포함하려면 다음 코드를 사용할 수 있습니다
theValue=$('#balanceinput').val();
var isnum1 = /^\d*\.?\d+$/.test(theValue);
var isnum2 = /^\d*\.?\d+$/.test(theValue.split("").reverse().join(""));
alert(isnum1+' '+isnum2);
'.'으로 구분 된 숫자와 숫자 만 테스트합니다. 첫 번째 테스트는 0.1 및 0과 같은 값을 포함하지만 0.1을 허용하지 않으므로 0을 허용하지 않습니다. 따라서 제안하는 솔루션은 theValue를 반대로하여 .1이 1이되도록하는 것입니다.
예 :
theValue=3.4; //isnum1=true , isnum2=true
theValue=.4; //isnum1=true , isnum2=false
theValue=3.; //isnum1=flase , isnum2=true
c="123".match(/\D/) == null #true
c="a12".match(/\D/) == null #false
문자열에 숫자 만 포함 된 경우 null을 반환합니다.