[JS] - 정규식표현

Imomo·2021년 3월 24일
0

RegExp의 exec, test 메소드와 String의 match, replace, search, split 메소드와 함께 사용됩니다.

replace

알바벳 소문자를 제외한 나머지문자 빈값으로 변경

s = "found3, time: study; Yduct~;
s = s.replace(/"[^a-z]/g , '');

split

+,_,* 포함하여 각각 배열의 요소로 분리시키기

let operand = expression.split(/([+\-\*])/);

exec

정규표현식과 일치하는 문자열들을 배열에 담아서 리턴

var myRe = /d(b+)(d)/ig; // d로 시작하고 b가 하나 이상이고 d로 끝나는 문자열을 찾는다. 대소문자 구분을 하지 않고, 일치하는 모든 문자열을 찾는다.
var myArray = myRe.exec("cdbBdbsbz");
alert(myArray); // array, [dbBd,bB,d], dbBd와 일치하고, 그룹(b+)와 bB가 일치, 그룹(d)와 d와 일치

>```
const targetStr = 'This is a pen.';
const regexr = /is/ig;
// RegExp 객체의 메소드
console.log(regexr.exec(targetStr)); // [ 'is', index: 2, input: 'This is a pen.' ]

카카오 신규 아이디 추천

function solution(new_id) {
    new_id = new_id.toLowerCase(new_id);
    new_id = new_id.replace(/[^0-9a-z\._-]/g, '');
    new_id = new_id.replace(/\.\.+/g, '.'); 
    while (new_id.length > 1 && new_id.startsWith('.'))
        new_id = new_id.slice(1);
    while (new_id.length > 1 && new_id.endsWith('.'))
        new_id = new_id.slice(0, -1);
    if (new_id === '.')
        new_id = ''; 
    if (!new_id.length)
        new_id = 'a'; 
    new_id = new_id.slice(0, 15);
    while (new_id.length > 1 && new_id.endsWith('.'))
        new_id = new_id.slice(0, -1); 
    while (new_id.length <= 2)
        new_id += new_id[new_id.length-1]; 
    return new_id;
}

new_id.replace(/\.\.+/g, '.'); 연속으로 ..된부분 => . 변경
. 한이유는 .점을 찍을경우 (임의의 한 문자와 일치) . 본문양 그대로 사용 ~!

new_id.startsWith('.') 문자열이 특정 문자열로 시작하는지 확인

new_id.endsWith() 문자열이 특정 문자열로 끝나는지 확인

0개의 댓글