문자열의 마지막 두 문자를 삭제하는 간단한 방법은 무엇입니까?
답변
245px
245에서 변환하려면 다음을 실행하십시오.
parseInt('245px', 10);
선행 번호 만 유지하고 나머지는 모두 버립니다.
답변
사용하다
var size = parseInt('245px', 10);
여기서 10은 정의 하는 기수 이며 10 진수 값으로 parseInt
구문 분석됩니다.
parseInt를 사용하지만 기수 없이 parseInt를 사용하지 마십시오.
parseInt () 함수는 문자열을 구문 분석하고 정수를 반환합니다.
서명은 parseInt(string, radix)
두 번째 인수는 parseInt가 10 진수 시스템을 사용하도록합니다.
- ParseInt ()의 기본 입력 유형은 10 진수 (밑수 10)입니다.
- 숫자가 “0”으로 시작하면 8 진수 (밑수 8)로 간주됩니다.
- “0x”로 시작하면 16 진수로 간주됩니다.
왜? $ (this) .attr ( ‘num’)이 “08”이면 기수가없는 parsInt는 0이됩니다.
답변
끝에 “px”가없는 픽셀 값을 변환합니다. parseFloat를 사용하십시오.
parseFloat('245px'); // returns 245
참고 : parseInt를 사용하는 경우 값이 정수이면 값이 정확합니다. 값이 245.50px와 같은 10 진수이면 값은 245로 반올림됩니다.
답변
이것은 정확히 당신이 요구하는 것을 수행합니다 : 문자열의 마지막 두 문자를 제거하십시오.
s.substr(0, s.length-2);
답변
놀랍게도 하위 문자열 메서드 s.substr(0, s.length-2);
는 실제로 제거하는 데 훨씬 더 빠릅니다 px
(예, 그다지 깔끔하게 보이지 않으며 공백이 있으면 남아있을 것입니다 "250px" -> "250"
-vs "250 px" -> "250 "
).
공백을 고려하고 싶다면 (아마도) .trim()
함수 를 사용 하면 실제로 방법이 실제로 우수해질 substr
정도로 테스트 속도가 느려 parseInt
집니다.
사용의 추가 이점은 parseInt(s, 10)
또한 유형 변환을 얻고이를 수학 함수에 즉시 적용 할 수 있다는 것입니다.
따라서 결국 결과로 무엇을 할 계획인지에 달려 있습니다.
- 디스플레이 전용 인 경우 트림 없이
substr
방법 을 사용하는 것이 가장 좋은 방법 일 것입니다. - 방금 픽셀없이 값이 다른 값과 동일합니다 있는지 확인하려는 경우
s.substr(0, s.length-2) == 0
다음 사용substr
으로, 최선을 다 할 것입니다 방법을"250 " == 250
(심지어 공간)로됩니다true
- 공간의 가능성을 설명하거나 다른 값에 추가하거나이를 사용하여 계산하려는 경우
parseInt
경로 를 고려할 수 있습니다 .
http://jsperf.com/remove-px-from-coord
jspref에 대한 테스트는 공백을 고려합니다. 나는 또한 a s.split('px')[0]
와 s.replace(/ *px/g, '')
함수를 시도했는데 , 둘 다 느린 것으로 나타났습니다.
추가 테스트 케이스를 자유롭게 추가하십시오.
답변
parseInt ()가 좋은 옵션이지만 다른 많은 솔루션을 갖는 것이 좋습니다.
var pixels = '245px';
Number(pixels.replace('px', ''));
답변
http://www.w3schools.com/jsref/jsref_substr.asp 확인
귀하의 경우는 다음과 같습니다.
string.substr(0, string.length - 2)