[자바스크립트] 문자열 함수

bunny.log·2023년 7월 13일
0

slice() 음수(-) 인덱스로 사용하기

var str = "The morning is upon us.";

str.slice(-3); // returns 'us.'
str.slice(-3, -1); // returns 'us'
str.slice(0, -1); // returns 'The morning is upon us'

replace

str_text.replace( `찾을 문자열`, `변경할 문자열` );

replace 특정문자 제거

let replaced_str = str.replace('AB', '');

replace 특정문자 모두 삭제

정규표현식은 "/패턴/플래그"와 같은 형태로 사용

let str = 'ABCABC';
let replaced_str = str.replace(/AB/g, '');

document.write('삭제 전 : ', str, '<br/>');
document.write('AB 삭제 후 : ', replaced_str, '<br/>');

문자열에서 특정요소를 제외하고 제거하기

정규식에서 특정 문자를 제외선택하는 방법은 /[^]/가 있다. ^이후에 나오는 문자들을 선택하지 않는다는 의미이다.

문자,숫자,-,.,_제외하고서 제거하기를 원한다면 다음과 같이 작성하면 된다.

string.replace(/[^\w-._]+/g,'');

소문자 외 문자열은 제외하고서 제거하기를 원한다면 다음과 같이 작성하면 된다.

string.replace(/[^a-z]/g, '');

indexOf 앞에서 문자열 찾기

var str = 'HTML,CSS,JavaScript';
var pos1 = str.indexOf('JavaScript');
// 결과 : 9

var pos2 = str.indexOf('Kotlin');
// 결과 : -1

indexOf 시작 인덱스 지정

string.indexOf(searchvalue, position)

let str = 'hello world';
function getIndexOfNum(str, searchValue) {
  let count = 0;
  let pos = str.indexOf(searchValue);
  while(pos !== -1) {
    pos = str.indexOf(searchValue, pos + 1);
    count++;
  }
  return count;
}
getIndexOfNum(str, o); // 2
getIndexOfNum(str, l); // 3

위 예제에서는 'abab' 문자열의 1번째 index부터 'ab' 문자열을 검색하므로,
index 0에 있는 'ab'는 무시합니다.

const str = "abab";
console.log(str.indexOf('ab', 1))

lastIndexOf 뒤에서 문자열 찾기

str.lastIndexOf("f");

search 함수는 indexOf 함수와 동일하게 문자열을 찾을 수 있다.
search 함수는 문자열을 찾을 때 시작 위치는 지정할 수는 없다.

var str = 'HTML,CSS,JavaScript';
var pos1 = str.search('JavaScript');
// 결과 : 9

var pos2 = str.search('Kotlin');
// 결과 : -1

search("정규식")
search 함수는 정규식을 사용하여 문자열을 찾을 수 있다.

/* 한글 찾기 */
var str = 'HTML,CSS,자바스크립트';
var pos = str.search(/[ㄱ-ㅎ|ㅏ-ㅣ|가-힣]/);
// 결과 : 9

소문자/대문자 변환

.toLowerCase()
.toUpperCase()

concat() 함수를 사용하여 문자열 합치기

var str1 = 'Java';
var str2 = 'Script';
var res = str1.concat(str2);

// 결과 : 'JavaScript'

charAt()

문자열에 속하는 문자는 왼쪽부터 오른쪽까지 0부터 인덱싱되어 있습니다.
charAt은 index로 주어진 값에 해당하는 문자를 리턴합니다.

var stringName = 'coding everybody';
alert(stringName.charAt(0)); // c
alert(stringName.charAt(stringName.length-1)); // y
alert(stringName.charAt(1000) == ''); // true

charCodeAt()

charCodeAt은 주어진 index에 해당하는 유니코드 값을 리턴하는데 이 값은 unicode가 지원되는 모든 시스템에서 동일한 문자를 가르킵니다.

var stringName = '자바스크립트';
console.log(stringName.charCodeAt(0)); // 51088
// http://www.unicode.org/charts/PDF/UAC00.pdf 에서 '자'을 찾아보면 'C790'인데 이것은 16진수다.
// 이를 10진수로 변환하면 51088 된다.

slice()로 [마지막 문자] 가져오기

const str = 'Hello, World, JavaScript';
const last = str.slice(-1);
console.log(last);   // t

substr()으로 [마지막 문자] 가져오기

const str = 'Hello, World, JavaScript';
const last = str.substr(-1);
console.log(last);   // t

match()

특정 텍스트 안에 검색할 단어 찾고 싶은 단어가 있는경우 해당 텍스트가 문구에 포함되어 있는지 확인할 수 있습니다. 또한 단어뿐만 아니라 정규표현식을 사용하여 특정 패턴을 검색하는 것 역시 가능합니다.

해당 문자열.match('찾을 단어')
// match()함수는 인자에 포함된 문자를 찾으면 이를 반환함

split()

split 메소드의 두번째 파라미터에 숫자 값을 지정하면 지정한 수 많큼 배열 엘리먼트를 반환한다.

'12_34_56'.split('_',2);
//[12,34]

.
.
.
.

문자열 오름차순 정렬

let arr = ["a", "d", "z", "p", "j", "c", "k", "s"];
arr.sort();
console.log(arr);	//['a', 'c', 'd','j', 'k', 'p','s', 'z']

문자열 오름차순 정렬

var strArray = ["BA", "BB", "AA", "AB", "CB", "CA"];

strArray.sort((a, b) => {
  if (a > b) return -1;
  if (a < b) return 1;
  return 0;
});

console.log(strArray); // ["CB","CA","BB","BA","AB","AA"]

참고 indexOf
https://ak-coding.tistory.com/1

참고 정규표현식
https://ninearies.tistory.com/177

참고 정규표현식
https://bingbingba.tistory.com/19

profile
https://github.com/nam-yeun-hwa

0개의 댓글