본문 바로가기

프로그래밍/JavaScript

자바스크립트(JavaScript) String.prototype.startsWith() 폴리필(polyfill)

안녕하세요. 루미오입니다.

JavaScript는 특정 문자열로 시작하는지 확인하는 startsWith() 함수를 ES6부터 제공하고 있습니다. 현재 IE에서는 사용할 수 없습니다. 물론 indexOf() 함수를 사용해서 특정 문자열로 시작하는지 찾을 수 있지만, startsWith() 함수를 사용하면 코드가 더 명확해지겠지요. 오늘은 startsWith() 함수의 폴리필을 만들어 보겠습니다.

순서
● String.prototype.startsWith() 폴리필(polyfill)
● String.prototype.startsWith() 사용법

하단의 → 코드 확인 및 테스트 버튼을 클릭하면 jsfiddle에서 바로 Test해 보실 수 있습니다.

 

String.prototype.startsWith() 폴리필

/* String.prototype.startsWith Polyfill */
if(!String.prototype.startsWith) {
	String.prototype.startsWith = function(search, fromIndex) {
		fromIndex = typeof fromIndex === 'boolean' ? (fromIndex ? 1 : 0) : fromIndex;
		fromIndex = typeof fromIndex === 'number' ? (fromIndex < 0 ? 0 : fromIndex) : 0;
		return this.indexOf(search, fromIndex) === fromIndex;
	};
}

내부적으로 indexOf() 함수를 사용했습니다.

 

String.prototype.startsWith() 사용법

/* startsWith() : 특정 문자열로 시작하는지 확인 하기 */
var result = false;
var str = 'foo 123 bar';	// str.length : 11

result = str.startsWith('foo');		// true : 'foo'로 시작함.
result = str.startsWith('FOO');		// false : 대소문자 구분
result = str.startsWith('bar');		// false : 'bar'로 시작하지 않음
result = str.startsWith('hoho');	// false : 'hoho'로 시작하지 않음
result = str.startsWith('bar', 8);	// true : 8 index부터 'bar' 시작
result = str.startsWith('123', 4);	// true : 4 index부터 '123' 시작
result = str.startsWith(123, 4);	// true : 숫자도 문자로 동일하게 처리함.

startsWith() 함수는 문자열이 특정 문자열로 시작하는지 확인한 결과를 boolean 값으로 return 합니다. 물론 특정 문자열로 시작할때 true입니다. 대소문자를 구분하며, 시작 index를 지정할 수 있습니다. 또한, 숫자도 문자와 동일하게 찾아줍니다.

 

감사합니다.

- 루미오 . LOOMIO -