안녕하세요. 루미오입니다.
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 -