프로젝트를 진행중 사용자의 OS를 가져와 OS별로 처리해줘야 할 일이 생겼다. 이를 구현한 방법을 메모해 놓으려고 한다. (match 함수를 이용하여 해결)
var userOs = navigator.userAgent.replace(/ /g, '').toLowerCase()
if( userOs.match(/macintosh/i) == "macintosh") {
return this.$store.commit("User/setUserOs", "mac")
}else if(userOs.match(/window/i) == "window") {
return this.$store.commit("User/setUserOs", "window")
}else if(userOs.match(/android/i) == "android") {
return this.$store.commit("User/setUserOs", "android")
}else if(userOs.match(/iphone/i) == "iphone") {
return this.$store.commit("User/setUserOs", "ios")
}else if(userOs.match(/ipad/i) == "ipad") {
return this.$store.commit("User/setUserOs", "ipad")
}
match 함수를 이용하여 해당 단어가 있을시 vuex에 해당 OS타입을 저장하였다. 코드 제일 상단 .toLowerCase() 함수는 모든 영단어를 소문자로 변경시키는 함수이지만, 아래 match()함수안에 /macintosh/i 와 같이 i수정자(대소문자를 무시함)를 넣었으므로 붙히지 않아도 될것이다. 해당 기능을 구현하는데 오랜 시간이 걸리지 않을 것 같지만 앞으로도 자주 쓰일 기능일 것 같아서 기록 한다.
'study > JavaScript' 카테고리의 다른 글
Js - 어휘적 환경(Lexical Environment)과 클로저(Closure) (0) | 2022.11.18 |
---|---|
Js - 스코프(Scope) (0) | 2022.11.17 |
Js - 호이스팅 간단히 이해하기 (0) | 2022.10.27 |
Js - JSDoc (0) | 2022.08.24 |
Js - var, let, const의 차이점 (0) | 2022.02.17 |