728x90
반응형
// 정규식(Regular Expression) : 일정한 패턴을 가진 문자열의 집합을 표현하기 위해 사용하는 형식
// 문자열 내에서 정규식에 맞는 패턴을 검색
// 정규식 플래그(flag) : i, g, m
// i : Ignore case -> 대소문자 구별없이 패턴 검색
// g : Global -> 대상 문자열에서 패턴과 일치하는 모든 문자열을 검색
// m : Multi line -> 문자열의 행이 바뀌더라도 패턴 검색을 계속함
// {숫자1, 숫자2} -> 최소 '숫자1'번 최대 '숫자2' 반복하는 문자열 ('숫자2' 생략시, 최소 '숫자1' 번 이상을 의미) /m{1,}/g 
// ? -> 앞의 패턴이 최대 한번 이상(0번 포함) 반복되는 문자열 
// 패턴1 | 패턴2 -> OR패턴. 패턴1에 해당하던지, 패턴2에 해당하던지. /m{1,}|la/g 
// [문자여러개] -> 범위검색. 해당 문자들에 해당하는 문자열을 찾음 /[sthi]/g, /[a-zA-Z]/g, /[0-9]/g, /[가-힣]/g, /[a-zA-Z0-9]/g 
// [^문자여러개] -> not 검색. 해당 문자에 해당하지 않는 것을 찾음 /[^a-zA-Z0-9]/g
// ^ -> []밖에 있을떄는 문자열의 시작을 의미. /^Is/g(Is로 시작하는가?)
// $ -> 문자열의 마지막을 의미함. 해당 문자 뒤에 쓸 것 \?$/g(?로 끝나는가?)
// 예제1) https:// 로 시작하거나, http:// 로 시작하는지 검사
let message = 'https://www.naver.com'; 
let regexp = /^https?:\/\//g
let result = regexp.test(message); 
// let result = regexp.test(message); // 찾았으면 true, 못찾았으면 false
// result = regexp.exec(message); // 찾은 문자열을 배열로 반환
// let result = message.match(regexp); // 문자열에서 정규식에 해당하는 부분을 배열로 반환
console.log(result);


// 예제2) 아이디가 적합한지 검사를 하자
// 알파벳 대소문자 또는 숫자로 시작하고, 끝나면서 5~10자리인가?
let id = 'test1234';
// /^[a-zA-Z0-9]$/ :알바벳 대소문자 또는 숫자로 시작하고 끝남
// {5,10} : 최소 5개 최대 10개
regexp = /^[a-zA-Z0-9]{5,10}$/g
result = regexp.test(id);
console.log(result);

// 예제3) 매일 주소 형식에 맞는지 검사를 해보자.
let mailAddress = 'test@naver.com';
regexp = /^[0-9a-zA-Z]*@[0-9a-zA-Z]*\.[a-zA-Z]{2,3}$/



let test = 'abcdefgabcdefg';
result = test.replace(/c/g,'');
console.log(result);


// Map은 jey 가 중복이 될 수 없다.
// value는 중복이 되어도 상관없음.
let map = new Map([[500, 10000], ['key2', 'value2']]);
map.set('key3', 'value3');
map.set('key3', 10000);
// map.delete('key2'); // 특정삭제
// map.clear();// 모두삭제
console.log('map : ', map);
map.forEach((v, k, map) =>{
    console.log('현재key : ', k);
    console.log('현재value : ', v);
});

for(let entry of map){
    console.log(entry)
}

console.log([...map]);

for(let k of map.keys()){
    console.log('key => ', k);
};
for(let v of map.values()){
    console.log('value => ', v);
};
for(let entry of map.entries()){
    console.log('enrty => ', entry);
};





let set = new Set([1, 2, 3, 4, 1, 2, 3, 4]);
let set2 = new Set('programming');
set.size
set.add(5);
set.add(4);
console.log(set);
console.log(set2);

set.forEach((v1, v2, set) => {
    console.log('v1: ', v1);
    console.log('v2: ', v2);
});

for(let x of set){
    console.log(x);
}






728x90
반응형

'코딩일지 > WEB' 카테고리의 다른 글

js 기초5  (0) 2023.01.01
js 정규식 연습1  (0) 2023.01.01
js 연습2  (0) 2023.01.01
js 기초4  (2) 2023.01.01
js 연습1  (0) 2023.01.01

+ Recent posts

">