문자열의 마지막 두 문자를 삭제하는 간단한 방법은 무엇입니까?
답변:
245px
245에서 변환하려면 다음을 실행하십시오.
parseInt('245px', 10);
선행 번호 만 유지하고 나머지는 모두 버립니다.
parseInt('09')
!
사용하다
var size = parseInt('245px', 10);
여기서 10은 정의 하는 기수 이며 10 진수 값으로 parseInt
구문 분석됩니다.
parseInt () 함수는 문자열을 구문 분석하고 정수를 반환합니다.
서명은 parseInt(string, radix)
두 번째 인수는 parseInt가 10 진수 시스템을 사용하도록합니다.
왜? $ (this) .attr ( 'num')이 "08"이면 기수가없는 parsInt는 0이됩니다.
끝에 "px"가없는 픽셀 값을 변환합니다. parseFloat를 사용하십시오.
parseFloat('245px'); // returns 245
참고 : parseInt를 사용하는 경우 값이 정수이면 값이 정확합니다. 값이 245.50px와 같은 10 진수이면 값은 245로 반올림됩니다.
parseFloat()
것입니다. parseInt()
( developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… & stackoverflow.com/ 참조) 질문 / 8555649 /… )
놀랍게도 하위 문자열 메서드 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, '')
함수를 시도했는데 , 둘 다 느린 것으로 나타났습니다.
추가 테스트 케이스를 자유롭게 추가하십시오.
http://www.w3schools.com/jsref/jsref_substr.asp 확인 귀하의 경우는 다음과 같습니다.
string.substr(0, string.length - 2)
나는 선호한다:
"245px".replace(/px/,'')*1
입력을 둘러싸고 있지 않기 때문입니다.
또한 *1
int로 캐스팅하기위한 것입니다.
substr()
인 레거시 기능은 이제 ; 사용 substring()
하는 대신, (구문은 동일한 이 경우 )
str.substring(0, str.length-2);
또는 다음을 사용하십시오 slice()
.
str.slice(0, -2);
slice()
훨씬 깨끗해 보입니다, IMO. 음수 값은 끝부터 다시 계산됩니다.
rem
값에 사용할 수 없기 때문에 덜 가치있는 기능을 만듭니다.
parseInt('245px', 10)