먼저 가장 간단한 방법이다. 정규 표현식으로 문자열 앞뒤 여백을 제거한다.
function trim(text) {
return text.replace(/^\s+|\s+$/g, "");
}
return text.replace(/^\s+|\s+$/g, "");
}
다음과 같이 정규 표현식에서 g 옵션을 제거하면 성능을 개선할 수 있다.
function trim(text) {
return text.replace(/^\s+/, "").replace(/\s+$/, "");
}
return text.replace(/^\s+/, "").replace(/\s+$/, "");
}
문자열 뒤에 있는 여백을 정규 표현식을 사용하지 않고 처리하면 성능을 더욱 개선할 수 있다.
function trim(text) {
text = text.replace(/^\s+/. "");
for (var i = text.length - 1; i >= 0; i--) {
if (/\S/.test(text.charAt(i))) {
text = text.substring(0, i + 1);
break;
}
}
return text;
}
text = text.replace(/^\s+/. "");
for (var i = text.length - 1; i >= 0; i--) {
if (/\S/.test(text.charAt(i))) {
text = text.substring(0, i + 1);
break;
}
}
return text;
}
어떤 방법이 어떤 방법보다 항상 올바른 것은 아니다. 마지막 방법은 성능이라는 장점을 갖지만 변태들을 위한 방법일 수 있다. 첫번째 방법은 간결하지만 성능이 중요한 부분에 사용하기에는 적합하지 않다.
Prototype은 두번째 방법(String#strip)을 사용한다.
function strip() {
return this.replace(/^\s+/, '').replace(/\s+$/, '');
}
return this.replace(/^\s+/, '').replace(/\s+$/, '');
}
No comments:
Post a Comment