const value = "ABC";
const obj = new RegExp("A", "g");
log(obj.test(value));
const reg = /A/g;
log(reg.test(value));
// true
// true
매치 시작 위치를 lastIndex 프로퍼티에 설정
g 플래그를 사용하면
const value = "ABABA", obj = /B/g;
log(obj.test(value) + ": " + obj.lastIndex);
log(obj.test(value) + ": " + obj.lastIndex);
log(obj.test(value) + ": " + obj.lastIndex);
// true: 2
// true: 4
// false: 0
const value = "ABABA", obj = /B/;
log(obj.test(value) + ": " + obj.lastIndex);
log(obj.test(value) + ": " + obj.lastIndex);
// true: 0
// true: 0
const value = "ABACC", obj = /B/;
log(obj.test(value) + ": " + obj.lastIndex);
obj.lastIndex = 2;
log(obj.test(value) + ": " + obj.lastIndex);
log(obj.test(value) + ": " + obj.lastIndex);
// true: 0
// true: 2
// true: 2
const value = "AABBA", obj = /A/y;
log(obj.test(value) + ": " + obj.lastIndex);
log(obj.test(value) + ": " + obj.lastIndex);
log(obj.test(value) + ": " + obj.lastIndex);
// true: 1
// true: 2
// false: 0
const value = "AABBA", obj = /A/y;
log(obj.sticky);
obj.lastIndex = 4;
log(obj.test(value) + ": " + obj.lastIndex);
// true
// true: 5
const obj = new RegExp("\u{31}\u{32}", "u");
log(obj.test("12"));
log(obj.unicode);
log(\u{1f418}\u.test("🐘"));
// true
// true
// true
const result = /\u{31}\u{32}/.test("12");
log(result);
// false
정규 표현식에서 dot(점.)은 모든 문자를 매치하지만 줄 바꿈 문자는 매치하지 않음
s플래그를 사용하면 (ES2018)
const text = `line 줄을 바꿈`;
// 이전 방법
log(/[\s\S]+/.test(text));
log(/[^]+/.test(text));
// s 플래그
const obj = new RegExp(".+", "s");
log(obj.test(text));
log(obj.dotAll);
// true
// true
// true
// true