값이 허용되는 범위에 있는지 확인하고 싶습니다. 그렇다면 무언가를하십시오. 그렇지 않으면 다른 것.
범위는 0.001-0.009
입니다. 나는 if
이것을 확인 하기 위해 다중을 사용하는 방법을 알고 있지만 단일 if
명령문 에서 확인할 방법이 있는지 알고 싶습니다 .
답변
숫자 비교에 대해 질문하고 있으므로 정규 표현식은 실제로 문제와 관련이 없습니다. if
이를 수행하기 위해 “다중 “문이 필요하지 않습니다 .
if (x >= 0.001 && x <= 0.009) {
// something
}
“between ()”함수를 직접 작성할 수 있습니다.
function between(x, min, max) {
return x >= min && x <= max;
}
// ...
if (between(x, 0.001, 0.009)) {
// something
}
답변
다음은 단일 비교 옵션입니다.
// return true if in range, otherwise false
function inRange(x, min, max) {
return ((x-min)*(x-max) <= 0);
}
console.log(inRange(5, 1, 10)); // true
console.log(inRange(-5, 1, 10)); // false
console.log(inRange(20, 1, 10)); // false
답변
당신이 경우 해야한다 regexp와를 사용 (정말, 당신은해야하지!)이 작동합니다 :
/^0\.00([1-8]\d*|90*)$/
작동해야합니다. 즉
^
전에는 아무것도 없었습니다.- 뒤에
0.00
(nb :.
문자에 대한 백 슬래시 이스케이프 ) - 그 뒤에 1 ~ 8 및 추가 숫자
- 또는 9, 임의의 수의 0
$
: 뒤에 아무것도 없음
답변
이미을 사용하고 있다면 https://lodash.com/docs/4.17.15#inRange 함수를 lodash
사용할 수 있습니다 inRange()
.
_.inRange(3, 2, 4);
// => true
_.inRange(4, 8);
// => true
_.inRange(4, 2);
// => false
_.inRange(2, 2);
// => false
_.inRange(1.2, 2);
// => true
_.inRange(5.2, 4);
// => false
_.inRange(-3, -2, -6);
// => true
답변
저는 Pointy의 between
기능을 좋아해서 제 시나리오에 잘 맞는 비슷한 기능을 작성했습니다.
/**
* Checks if an integer is within ±x another integer.
* @param {int} op - The integer in question
* @param {int} target - The integer to compare to
* @param {int} range - the range ±
*/
function nearInt(op, target, range) {
return op < target + range && op > target - range;
}
따라서 x
± 10 범위 내에 있는지 확인하려면 y
:
var x = 100;
var y = 115;
nearInt(x,y,10) = false
모바일에서 길게 누르는 것을 감지하는 데 사용하고 있습니다.
//make sure they haven't moved too much during long press.
if (!nearInt(Last.x,Start.x,5) || !nearInt(Last.y, Start.y,5)) clearTimeout(t);
답변
코드에서 특정 범위의 자릿수를 선택하도록하려면 &&
대신 연산자 를 사용해야 합니다 ||
.
if (x >= 4 && x <= 9) {
// do something
} else {
// do something else
}
// be sure not to do this
if (x >= 4 || x <= 9) {
// do something
} else {
// do something else
}
답변
조건을 작성하기 전에 하한과 상한을 결정해야합니다.
function between(value,first,last) {
let lower = Math.min(first,last) , upper = Math.max(first,last);
return value >= lower && value <= upper ;
}