[javascript] 245px에서 “px”를 삭제하는 방법

문자열의 마지막 두 문자를 삭제하는 간단한 방법은 무엇입니까?



답변

245px245에서 변환하려면 다음을 실행하십시오.

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)