Rev. 2.73

Steven Levithan씨는 자바스크립트에서 trim 함수를 만들고 최적화하는 흥미로운 실험을 했습니다. 아시다시피 trim함수는 php에서 사용되는 함수로써 문자열의 처음과 끝에 공백이 있는 경우 이를 제거하고 반환받는 편리한 함수입니다. Prototype에서는 이와 같은 기능인 strip메서드를 제공하고 있습니다. 이 메서드는 아래와 같은 코드를 실행하게 됩니다.

return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');

일반적으로 위와 같거나 비슷한은 코드를 사용하여 자바스크립트로 trim함수를 구현해서 사용합니다. Steven Levithan씨의 테스트 결과에 따르면, 정규표현식에는 문자열의 마지막으로 건너뛰는 조작이 불가능하기 때문에 긴 문자열에서는 성능을 제대로 발휘하지 못한다고 합니다. 그래서 긴 문자열에 trim함수를 사용하는 경우 아래와 같은 코드를 사용하는 것이 성능을 높일 수 있다는 결론을 얻어냈습니다.

function trim11 (str) {
	str = str.replace(/^\s+/, '');
	for (var i = str.length - 1; i > 0; i--) {
		if (/\S/.test(str.charAt(i))) {
			str = str.substring(0, i + 1);
			break;
		}
	}
	return str;
}

Comments

Got something to add? You can just leave a comment.

Your Reaction Time!

captcha

avatar