문자열
문자열에서 특정문자 찾기
1. 특정문자 포함여부 확인
String.indexOf()
value : 찾으려는 특정 문자
- 문자열에서 특정문자를 포함하는 첫 번째 위치를 반환
- 문자열에 특정문자가 없다면
-1을 반환
String.indexOf( value );
var str = "abaaabbbcccddaaaab";
str.indexOf('a');
str.indexOf('a', 5);
str.indexOf('g');
String.includes()
value : 포함여부를 확인할 문자
- ES6이상에서 적용가능
- 문자열에서 특정문자가 포함되었는지를 확인한다.
- 문자열에 특정문자가 있으면
true를 없으면 false를 반환.
String.indexOf( value );
var str = "abaaabbbcccddaaaab";
str.includes("a");
str.includes("f");
String.includes()
value : 포함여부를 확인할 문자
- ES6이상에서 적용가능
- 문자열에서 특정문자가 포함되었는지를 확인한다.
- 문자열에 특정문자가 있으면
true를 없으면 false를 반환.
String.indexOf( value );
var str = "abaaabbbcccddaaaab";
str.includes("a");
str.includes("f");
String.match()
regexp : 검색할 정규식 개체
- 문자열이 정규식과 매치되는 부분을 검색
- 문자열에 정규식과 일치 부분이 있으면
array를 반환하고 없으면 null을 반환.
array : 일치하는 개체, 일치하는 개체가 있는 index, input 문자열 등
String.match(/regexp/);
var str = "abaaabbbcccddaaaab";
var result = str.match(/a/);
console.log(result);
result = str.match(/f/);
console.log(result);
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);
String.match()
regexp : 검색할 정규식 개체
- 문자열이 정규식과 매치되는 부분을 검색
- 문자열에 정규식과 일치 부분이 있으면
array를 반환하고 없으면 null을 반환.
array : 정규식에 g 플래그가 있으면 일치하는 개체 정보가 아니라, 일치하는 하위 문자열 array가 반환됨
String.match(/regexp/g);
var str = "abaAabbbcccddaAaab";
result = str.match(/a/g);
console.log(result);
console.log(result.length);
array : 정규식에 i 플래그가 있으면 대소문자 정규식 개체의 대소문자를 구분하지 않음
String.match(/regexp/gi);
var str = "abaAabbbcccddaAaab";
result = str.match(/a/gi);
console.log(result);
console.log(result.length);
- 찾으려는 개체가 없을 경우
- match는
null을 반환하므로,[] 빈배열 반환
var str = "abaAabbbcccddaAaab";
var count = (str.match(/a/gi) || []).length;
console.log(count);
var count = (str.match(/f/gi) || []).length;
console.log(count);
String.split()
- 특정문자를 구분자로 사용. 반환된 배열 길이에서 -1을 하면 특정문자 갯수
- 잘 사용할 것 같지는 않지만 신기한 방법...!
var str = "abaAabbbcccddaAaab";
var resultArr = str.split("a");
var result = str.split("a").length -1;
console.log(resultArr);
console.log(result);
문자열을 다른 타입으로 변환하기
배열로 변환하기
String.split()
- 지정한 구분자를 이용하여 여러 개의 문자열로 나눈다.
separator : 구분자, 문자열이나 정규표현식을 받음
limit : 최대 배열 길이 (원수 갯수)
String.split(separator,limit);
var str = "Welcome to javascript";
var result = str.split();
console.log(result);
console.log(result[0]);
var str = "Welcome to javascript";
var result = str.split(" ");
console.log(result);
var str = "Welcome to javascript";
var result = str.split(" ",2);
console.log(result);
var str = "Welcome to javascript";
var result = str.split("");
console.log(result);
- 기호 단위
- 정규식 사용,
: or(|) , 기호를 구분자로 사용
var str = 'programming languages:java,javacript,C,C++';
var result = str.split(/:|,/);
console.log(result);
문자열을 다른 문자열로 치환하기
문자열 변환하기
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);
const str = "apple, Banana, banana, orange, banana, ";
let replace_str = str.replace(/banana/g,"mango");
console.log(replace_str);
const str = "apple, Banana, banana, orange, banana, ";
let replace_str = str.replace(/banana/gi,"mango");
console.log(replace_str);
const str = "apple, Banana, banana, orange, banana, ";
let searchValue = "banana,";
let searchRegex = new RegExp(searchValue,"gi")
let replace_str = str.replace(searchRegex,"");
console.log(replace_str);
출처