입력이 숫자 또는 문자 javascript인지 확인
HTML과 자바 펼쳐보기 양식을 사용하고 있습니다. 사용자가 LETTER를 입력하고 있고 클릭 하는 경우에만 경고가 표시하고 싶습니다 submit
.
그래서 HTML 코드가 있습니다.
<form name="myForm" action="" onsubmit="return checkInp()" method="post">
First name: <input type="text" name="age">
<input type="submit" value="Submit">
그리고 자바 펼쳐 코드 :
function checkInp()
{
var x=document.forms["myForm"]["age"].value;
if (x consists of any letters) // this is the code I need to change
{
alert("Must input numbers");
return false;
}
}
isNaN 함수를 사용하여 값이 숫자로 변환되지 않는지 확인할 수 있습니다. 보이는 같은 예 :
function checkInp()
{
var x=document.forms["myForm"]["age"].value;
if (isNaN(x))
{
alert("Must input numbers");
return false;
}
}
문자 만 일치 시키려면 정규식을 사용하십시오 . 특정 숫자인지 확인하는 것과 같이 더 복잡한 작업을 수행해야 할 경우에 대한 작업을 수행해야합니다.
function checkInp()
{
var x=document.forms["myForm"]["age"].value;
var regex=/^[a-zA-Z]+$/;
if (!x.match(regex))
{
alert("Must input string");
return false;
}
}
숫자 이외의 것을 부정하는 것이 좋습니다.
function checkInp()
{
var x=document.forms["myForm"]["age"].value;
var regex=/^[0-9]+$/;
if (x.match(regex))
{
alert("Must input numbers");
return false;
}
}
isNaN 함수를 사용할 수 있습니다 . 데이터가 숫자가 아니면 true를 반환합니다. 그것은 다음과 가변적입니다.
function checkInp()
{
var x=document.forms["myForm"]["age"].value;
if (isNaN(x)) // this is the code I need to change
{
alert("Must input numbers");
return false;
}
}
참고 : isNan은 10.2를 유효한 숫자로 기재합니다.
isNaN ()을 사용할 수 있습니다. 데이터가 숫자가 아닌 경우 true를 반환합니다.
var data = 'hello there';
if(isNaN(data)){
alert("it is not number");
}else {
alert("its a valid number");
}
1로 나누어 나머지를 찾으십시오. 즉 x % 1입니다. 나머지가 0이면 x가 정수임을 의미합니다. "숫자를 입력해야합니다"라는 이름이 표시되어야합니다. 이것은 활성화, 십진수 등의 경우에도 작동합니다.
function checkInp()
{
var x = document.forms["myForm"]["age"].value;
if ((x%1) != 0)
{
alert("Must input numbers");
return false;
}
}
이 시도 :
if(parseInt("0"+x, 10) > 0){/* x is integer */}
이 게시물이 오래 예전에 튀어 나온 것이 처음으로 튀어 나온 것입니다. @Kim Kling RegExp를 시도했지만 비참하게 실패했습니다. 또한이 포럼을 찾기 전에 여기에 거의 모든 변형을 시도했습니다. 결국, 내가 만든 이것 외에는 그들 중 누구도 일하지 않습니다. 잘 작동하며 es6입니다.
let regex = new RegExp(/[^0-9]/, 'g');
let x = document.forms["myForm"]["age"].value;
if (x.match(regex)) {
alert("Must be a valid number");
return
}
더 나은 (오류없는) 코드는 다음과 같습니다.
function isReallyNumber(data) {
return typeof data === 'number' && !isNaN(data);
}
이것은 빈 이동도 처리합니다. 또 다른 이유는, isNaN("12")
로 동일 false
하지만, "12"
그것은 결과를 필요로하는 경우, 많은이 아닌 숫자입니다 true
. 마지막으로 관심을 번만 한 개체 링크 입니다.
function isNumber(data){
data = data +"e1"; // Disallow eng. notation "10e2"+"e1" is NaN
var clean = parseFloat(data,10) / data ; // 1 if parsed cleanly
return ( data==0 || clean && (data/data) === 1.0); // Checks for NaN
}
function isInteger(data){
data = data +"e1"; // Disallow eng. notation "10e2"+"e1" is NaN
var clean = parseInt(data,10) / data ; // 1 if parsed cleanly
return (data==0 ||clean && (data%1) === 0); // Checks For integer and NaN
}
//Expected pass
console.log(isNumber("0"))
console.log(isNumber("-0.0"))
console.log(isNumber("+0.0"))
console.log(isNumber(0))
console.log(isNumber(-0.0))
console.log(isNumber(+0.0))
console.log(isNumber(1))
console.log(isNumber(-10.0))
console.log(isNumber(+1000.000001))
console.log(isNumber(1))
console.log(isNumber(-10.0))
console.log(isNumber(+1000.000001))
//Expected fail
console.log(isNumber("FF"))
console.log(isNumber("1e1"))
console.log(isNumber("seven"))
쉬운 방법은 추론 Number
문자열 로 object- 를 만들고 클래스 자체에서 isInteger
제공하는 기능 현관 의 도움으로 확인하는 Number
을 구석으로입니다.
Number.isInteger(Number('1')) //true
Number.isInteger(Number('1 mango')) //false
Number.isInteger(Number(1)) //true
Number.isInteger(Number(1.9)) //false
가장 많은 현대적인 방법은 많은의 숫자가 아닌 실수에 관심이있는 소유의 유형입니다. 예를 들면 :
var a = 1;
var b = '1';
typeof a: // Output: "number"
typeof b: // Output: "string
참고 URL : https://stackoverflow.com/questions/18042133/check-if-input-is-number-or-letter-javascript
'ProgramingTip' 카테고리의 다른 글
BinaryReader의 모든 바이트를 소비하는 우아한 방법? (0) | 2020.11.26 |
---|---|
Vim- 이전 위치로 이동 (0) | 2020.11.26 |
Genymotion 장치를 시작할 수 없습니다 (0) | 2020.11.26 |
자바 펼쳐 장난 / 농담 (0) | 2020.11.26 |
git commit signing failed : 비밀 키를 사용할 수 없습니다. (0) | 2020.11.26 |