RegExp의 exec, test 메소드와 String의 match, replace, search, split 메소드와 함께 사용됩니다.
알바벳 소문자를 제외한 나머지문자 빈값으로 변경
s = "found3, time: study; Yduct~;
s = s.replace(/"[^a-z]/g , '');
+,_,* 포함하여 각각 배열의 요소로 분리시키기
let operand = expression.split(/([+\-\*])/);
정규표현식과 일치하는 문자열들을 배열에 담아서 리턴
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()
문자열이 특정 문자열로 끝나는지 확인