slice(s,e)
s는 시작인덱스, e는 끝 인덱스(e는 포함 안댐 e-1까지 자름)
첫번째 인자로 넘어온 시작 인덱스가 가리키는 값은 포함
두번째 인자로 넘어온 종료 인덱스가 가리키는 값은 포함하지 않는다.
두번째 인자를 넘기지 않으면, 시작 인덱스가 가리키는 값부터 배열의 마지막 값까지 모두 복사
let a = [0,1,2,3,4,5,6,7,8,9]
console.log(a.slice(0, 5)) // [0,1,2,3,4]
console.log(a.slice(7)) // [7,8,9]
정규식
replace() 사용시 원하는 값을 찾아서 바꿔주지만, 문자열이나 배열에서 첫번째로 찾은 값만 바꿔주고 모두 다 바꿀수는 없다. 그러기에 원하는 모든 값을 바꿔주려면 정규식을 사용해서 새로운 문자로 바꿔야 함
알고리즘을 풀면서 여러 방면으로 정규식을 사용하는 문제를 보았는데
, - _ 문자를 제외한 특수문자 를 제거하는 문제였다
function removeSpecialData() {
//특수문자 검증 start
let str = new_id;
let regExp = /[\{\}\[\]\/?,;:|\) *~`!^\+<>@\#$%&\\\=\(\'\"]/gi
if (regExp.test(str)) {
//특수문자 제거
let t = str.replace(regExp, "")
console.log("특수문자를 제거했습니다. ==>" + t)
new_id = t
console.log(new_id)
} else {
console.log("정상적인 문자입니다. ==>" + str)
}
//특수문자 검증 end
}
.replace(/[^\w-_.]/g, '') // 2 // 더 좋은방법
// / / 사이에 들어가는게 정규식
// [^ ]브라켓 안에 포함되지 않은 문자 중하나를 의미
// \w는 숫자 문자
// -_.
// /[^\w-_.]/은 숫자 문자 - _ . 를 제외한거를 /g 글로벌(모두) 찾아서 ""공백을 만들어라
... 같이 .이 연속적으로 나타나면 이걸 . 하나로 바꿔라
let regExp = /\.{2,}/g
str.replace(regExp, ".")
// \.{2,} .이 2개 이상 중복 되는 것들을 "."로 바꾼다
시작과 끝에 . 이 있으면 지워라
let regExp = /^\.|\.$/g
str.replace(regExp, "")
// []없이 ^는 시작표시 $는 끝 표시
// ^\. 시작에 .
// \.$끝에 .
// | or
// 시작이나 끝에 . 이 있으면 ""으로 바꿔라
정규식은 너무 외계어 같다 일단은 이정도로 간단하게 사용한것을 적고 나중에 시간내서 완벽히 정리 해야겠다.
'coding > JS' 카테고리의 다른 글
for in / for of (0) | 2022.07.27 |
---|---|
slice()와 splice() 차이 (0) | 2022.07.19 |
JWT, API (0) | 2022.07.17 |
filter, set, replace (0) | 2022.07.17 |
map (0) | 2022.07.16 |