programing

문자열에 숫자만 포함되어 있는지 확인합니다.

procenter 2022. 10. 30. 16:17
반응형

문자열에 숫자만 포함되어 있는지 확인합니다.

확인하려고 합니다.string에는 숫자만 포함됩니다.저는 이걸 썼어요

var isANumber = isNaN(theValue) === false;

if (isANumber){
    ..
}

하지만, 그것이 또한+그리고.-기본적으로, 저는 이 모든 것이input에는 숫자만 포함되며 다른 문자는 포함되지 않습니다.부터+100그리고.-5둘 다 숫자입니다.isNaN()옳은 길이 아니야혹시 regexp가 필요한 건 아닐까요?팁이 있나요?

어때.

let 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);

문자열에 숫자만 포함되어 있는지 여부를 확인할 수 있는 또 다른 흥미롭고 읽기 쉬운 방법이 있습니다.

이 메서드는 확산 연산자를 사용하여 문자열을 배열로 분할한 후 배열 의 모든 요소(문자)가 숫자 문자열에 포함되는지 여부를 테스트하는 메서드를 사용합니다.'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 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"의 문자 코드입니다.

이게 네가 원하는 거야

function isANumber(str){
  return !/\D/.test(str);
}
function isNumeric(x) {
    return parseFloat(x).toString() === x.toString();
}

다시 돌아오겠지만false선두 또는 후행 0이 있는 문자열에 대해 지정합니다.

다음 정규식을 사용할 수 있습니다.

^\d+$

정수가 필요하고 동일한 검증으로 부동하는 경우

/^\d+\.\d+$|^\d+$/.test(val)

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이 1이 되도록 하는 것입니다.그러면 같은 정규 표현에서는 허용되지 않습니다.

예:

 theValue=3.4; //isnum1=true , isnum2=true 
theValue=.4; //isnum1=true , isnum2=false 
theValue=3.; //isnum1=flase , isnum2=true 

regex를 사용하지 않는 솔루션

const  isdigit=(value)=>{
    const val=Number(value)?true:false
    console.log(val);
    return val
}

isdigit("10")//true
isdigit("any String")//false

jQuery를 사용하는 경우:

$.isNumeric('1234'); // true
$.isNumeric('1ab4'); // false
c="123".match(/\D/) == null #true
c="a12".match(/\D/) == null #false

문자열에 숫자만 포함된 경우 null을 반환합니다.

언급URL : https://stackoverflow.com/questions/1779013/check-if-string-contains-only-digits

반응형