# Javascript - Switch with Regex
# Problem
Google Tag Manager
에서 event
를 만드는데 카테고리를 현재 있는 페이지 이름으로 넣고 싶다.
하지만 그냥 page path를 가져오면 가독성이 좋지 않아 한글화를 하고 싶다.
커스텀 자바스크립트 변수로 switch로 분기태워서 나누면 될 것 같은데,
https://store.pinkfong.com/user/order/2521/
에서 2521
처럼 동적으로 만들어진 path가 있어 보통 switch문으로 되지 않아 정규표현식을 쓰도록 한다.
# Solution
switch에 true를 넣어 무조건 안으로 넣어주고, /정규식/.test(원하는변수)
식으로 분기를 태워준다.
GTM의 Custom Javascript타입으로 pathName
이란 이름의 Variables를 만들고, 사용할 땐 으로 사용해주면 된다.
function() {
var path = location.pathname;
var name;
switch(true) {
case /^\/$/.test(path):
name = "메인페이지";
break;
case /^\/\d+\/$/.test(path):
name = "제품상세";
break;
case /^\/user\/order\/\d+\/done\/$/.test(path):
name = "구매완료";
break;
case /^\/user\/order\/$/.test(path):
name = "주문";
break;
case /^\/user\/order\/\d+\/$/.test(path):
name = "주문상세";
break;
case /^\/cart\/$/.test(path):
name = "장바구니";
break;
case /^\/order\/$/.test(path):
name = "주문진행중";
break;
default:
name = path;
}
return name;
}
# refer
http://stackoverflow.com/questions/2896626/switch-statement-for-string-matching-in-javascript