func 객체 활용
const operations = {
w: (n) => n + 1,
s: (n) => n - 1,
d: (n) => n + 10,
a: (n) => n - 10,
};
console.log(operations["w"](2)); // 3
배열 요소 바꾸기 swap
const arr = [1,2,3,4,5];
arr[3] = 21;
[arr[2],arr[4]] = [arr[4],arr[2]];
console.log(arr); // [1,2,5,21,3]
Infinity 는 무한대
const min = Infinity;
console.log(Math.min(1000, min)); // 1000
정규표현식 이해 (코드 리뷰)
프로그래머스 : 배열 만들기 2
문제
function solution(l, r) {
const result = Array.from({length:r-l+1}, (_,i)=>i+l).filter(n=>!/[^05]/.test(n));
return result.length ? result : [-1];
}
// l ~ r 까지 길이만큼 1 부터 오름차순인 배열
Array.from({length:r-l+1}, (_,i)=>i+l)
// 주어진 함수의 테스트를 통과하는 모든 요소의 배열을 반환
filter(n=>!/[^05]/.test(n))
test()
// n 이 0 과 5 이외의 숫자를 포함하는지를 검사후 부정
!/[^05]/.test(n)
정규표현식
문자열에 나타나는 문자 조합과 관련된 패턴을 정의하는 문자열
복잡한 문자열, 유효성 검사, 검색 및 치환 등의 작업을 유연하게 처리
사용법
리터럴 표기법: /pattern/flags
생성자 함수 방식: new RegExp("pattern", "flags")
@ 플래그
- g: 전역 검색
- i: 대/소문자 구분 없이 검색
- m: 여러 줄 모드
@ 주요 메서드
- test(): 패턴과 일치하면 true,
그렇지 않으면 false를 반환
- exec(): 패턴과 일치하는 하나의 배열을 반환,
일치하는 것이 없으면 null을 반환
- match(): 문자열에서 패턴과 일치하는 모든 결과를 배열로 반환
@ 주요 패턴 문자
- \d: 숫자
- \w: 알파벳 문자 및 숫자
- \s: 공백 문자
- .: 임의의 문자
- *: 앞의 문자가 0회 이상 반복
- +: 앞의 문자가 1회 이상 반복
- ?: 앞의 문자가 0 또는 1회 등장
- ^: 문자열 시작
- $: 문자열 끝
- |: 또는
- [abc]: a, b, c 중 하나
- [^abc]: a, b, c 제외한 문자
- {n}: 앞의 문자가 n회 등장
웹 개발시 주로 사용되는 경우
function isValidEmail(email) {
const regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
return regex.test(email);
}
function isValidPhone(phone) {
const regex = /^\d{2,3}-\d{3,4}-\d{4}$/;
return regex.test(phone);
}
function isValidURL(url) {
const regex = /^(http|https):\/\/[^ "]+$/;
return regex.test(url);
}
function isValidPassword(password) {
const regex = /^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$/;
return regex.test(password);
}