[JS] 문자열 함수 모음

gem·2022년 5월 2일
3

문자열

문자열에서 특정문자 찾기

1. 특정문자 포함여부 확인

String.indexOf()

  • value : 찾으려는 특정 문자
  • 문자열에서 특정문자를 포함하는 첫 번째 위치를 반환
  • 문자열에 특정문자가 없다면 -1을 반환
String.indexOf( value );
var str = "abaaabbbcccddaaaab";

str.indexOf('a');     // 0
str.indexOf('a', 5);  // 13
str.indexOf('g');  // -1

String.includes()

  • value : 포함여부를 확인할 문자
  • ES6이상에서 적용가능
  • 문자열에서 특정문자가 포함되었는지를 확인한다.
  • 문자열에 특정문자가 있으면 true를 없으면 false를 반환.
String.indexOf( value );
var str = "abaaabbbcccddaaaab";

str.includes("a"); // true
str.includes("f"); // false

String.includes()

  • value : 포함여부를 확인할 문자
  • ES6이상에서 적용가능
  • 문자열에서 특정문자가 포함되었는지를 확인한다.
  • 문자열에 특정문자가 있으면 true를 없으면 false를 반환.
String.indexOf( value );
var str = "abaaabbbcccddaaaab";

str.includes("a"); // true
str.includes("f"); // false

String.match()

  • regexp : 검색할 정규식 개체
  • 문자열이 정규식과 매치되는 부분을 검색
  • 문자열에 정규식과 일치 부분이 있으면 array를 반환하고 없으면 null을 반환.
  • array : 일치하는 개체, 일치하는 개체가 있는 index, input 문자열 등
String.match(/regexp/);
var str = "abaaabbbcccddaaaab";
var result = str.match(/a/);

console.log(result); //['a', index: 0, input: 'abaaabbbcccddaaaab', groups: undefined]

result = str.match(/f/);
console.log(result); // null

2. 특정문자 갯수 세기

String.indexOf()

  • fromIdex : 특정문자를 찾기 위한 검색 시작 위치
  • 문자열에 특정문자가 없다면 -1을 반환
String.indexOf( value, fromIndex);
var str = "abaaabbbcccddaaaab";
var search = "a";
var count = 0;
var idx = str.indexOf(search);


while(idx != -1){
    count ++;
    idx = str.indexOf(search,idx+1);
}

console.log(count); // 8

String.match()

  • regexp : 검색할 정규식 개체
  • 문자열이 정규식과 매치되는 부분을 검색
  • 문자열에 정규식과 일치 부분이 있으면 array를 반환하고 없으면 null을 반환.
  • array : 정규식에 g 플래그가 있으면 일치하는 개체 정보가 아니라, 일치하는 하위 문자열 array가 반환됨
String.match(/regexp/g);
var str = "abaAabbbcccddaAaab";

result = str.match(/a/g);
console.log(result); //['a', 'a', 'a', 'a', 'a', 'a']
console.log(result.length); // 6
  • array : 정규식에 i 플래그가 있으면 대소문자 정규식 개체의 대소문자를 구분하지 않음
String.match(/regexp/gi);
var str = "abaAabbbcccddaAaab";

result = str.match(/a/gi);
console.log(result); // ['a', 'a', 'A', 'a', 'a', 'A', 'a', 'a']
console.log(result.length); // 8
  • 찾으려는 개체가 없을 경우
    • match는 null을 반환하므로,[] 빈배열 반환
var str = "abaAabbbcccddaAaab";

var count = (str.match(/a/gi) || []).length;
console.log(count); // 8

// 찾으려는 개체가 없으면 [] 빈배열 반환
var count = (str.match(/f/gi) || []).length;
console.log(count); // 0

String.split()

  • 특정문자를 구분자로 사용. 반환된 배열 길이에서 -1을 하면 특정문자 갯수
  • 잘 사용할 것 같지는 않지만 신기한 방법...!
var str = "abaAabbbcccddaAaab";

var resultArr = str.split("a");
var result = str.split("a").length -1;

console.log(resultArr); // ['', 'b', 'A', 'bbbcccdd', 'A', '', 'b']
console.log(result); // 6

문자열을 다른 타입으로 변환하기

배열로 변환하기

String.split()

  • 지정한 구분자를 이용하여 여러 개의 문자열로 나눈다.
  • separator : 구분자, 문자열이나 정규표현식을 받음
  • limit : 최대 배열 길이 (원수 갯수)
String.split(separator,limit);
  • 구분자 없음
var str = "Welcome to javascript";
var result = str.split();

console.log(result); // ['Welcome to javascript']
console.log(result[0]); // Welcome to javascript
  • 단어 단위
var str = "Welcome to javascript";
var result = str.split(" ");

console.log(result); // ['Welcome', 'to', 'javascript']
  • 단어 단위 & 최대 배열 길이 제한
var str = "Welcome to javascript";
var result = str.split(" ",2);

console.log(result); // ['Welcome', 'to']
  • 음절 단위
    • 공백도 음절 단위에 포함
var str = "Welcome to javascript";
var result = str.split("");

console.log(result); // ['W', 'e', 'l', 'c', 'o', 'm', 'e', ' ', 't', 'o', ' ', 'j', 'a', 'v', 'a', 's', 'c', 'r', 'i', 'p', 't']
  • 기호 단위
    • 정규식 사용, : or(|) , 기호를 구분자로 사용
var str = 'programming languages:java,javacript,C,C++';
var result = str.split(/:|,/);

console.log(result); // ['programming languages', 'java', 'javacript', 'C', 'C++']

문자열을 다른 문자열로 치환하기

문자열 변환하기

String.replace()

  • 어떤 패턴에 일치하는 대상을 치환해 새로운 패턴이 들어간 문자열을 반환.
  • 패턴이 문자열일 경우 첫 번째 패턴만 치환됨.
  • 원래의 문자열은 변경되지 않고 새로운 문자열을 반환함.
  • searchValue, : 패턴에 일치하는 대상. 패턴은 문자열이나 정규식(RegExp)이고 대소문자를 구분함.
  • replaceValue : 치환해서 들어갈 새로운 패턴
String.replace(searchValue,replaceValue);
const str =  "apple, Banana, banana, orange, banana, ";

let replace_str = str.replace("banana","mango");
console.log(replace_str); // apple, mango, orange, banana
  • 모든 패턴 치환
const str =  "apple, Banana, banana, orange, banana, ";

let replace_str = str.replace(/banana/g,"mango");
console.log(replace_str); // apple, Banana, mango, orange, mango, 
  • 대소문자 구분하지 않고 치환하기
const str =  "apple, Banana, banana, orange, banana, ";

let replace_str = str.replace(/banana/gi,"mango");
console.log(replace_str); // apple, mango, mango, orange, mango, 
  • 메소드로 변수 넣기
const str =  "apple, Banana, banana, orange, banana, ";

let searchValue = "banana,";
// RegExp 객체를 사용
let searchRegex = new RegExp(searchValue,"gi")

let replace_str = str.replace(searchRegex,"");
console.log(replace_str); // apple, orange,

출처

profile
연봉킹이 되고 싶은 개발자

0개의 댓글