IOS 크롬 에러 발생 (PC는 정상 작동할 때)
전에 블로그 포스팅 중 천의 자리 콤마를 찍는 자바스크립트 정규식을 공유했었다.
https://ordinary-code.tistory.com/128
[nuxt/vue filter] 숫자 3자리(천자리) 마다 콤마 찍으면서 소수점 처리하기
자바스크립트에서 천 자리마다 콤마를 찍어줘야 하는 경우가 많다. 숫자에다가 천 자리마다 콤마를 찍기 위해서는 정규식을 이용해야 한다. Vue에서는 Filter를 이용해서 숫자 3 자리 마자 콤마를
ordinary-code.tistory.com
최근에 서비스 배포 후 모바일에서 페이지가 정상적으로 작동하지 않는다는 내용이 접수되어
처음에 vue router 문제인지, 아니면 redirect문제인지 여러 방면으로 삽질을 했었는데,
상상하지도 못했던 문제는 바로 정규식 때문이라는 점!
https://kunkunwoo.tistory.com/213
pc chrome 렌더링은 정상적으로 되는데, ios chrome에서 렌더링이 안될때 - (SyntaxError: Invalid regular expres
최근 chrome에서는 브라우저 랜더링이 정상적으로 되는데, ios에 있는 chrome에서 정상적으로 실행되지 않는 에러를 겪었다. 왜 그럴까 서칭을 해보니.. 저 위의 그림과 같이 ios chrome은 다른 엔진을
kunkunwoo.tistory.com
진짜 하루 넘게 삽질을 했었는데 나에게 발견된 강 같은 블로그 글로 다행히 에러를 해결했다.
오류는 아래와 같았다.
SyntaxError: Invalid regular expression: invalid group specifier name
완전히 상상도 못 했던 정체가 바로 정규식 때문이었다니..
문제가 되었던 코드는 아래와 같다.
numberFormat (value, numFix) => {
value = parseFloat(value);
if (!value) return '0';
return value.toFixed(numFix).replace(/\B(?<!\.\d*)(?=(\d{3})+(?!\d))/g, ',');
},
해당 코드는 천의 자리에서 콤마를 찍을 때 이용하는 정규식이었는데,
해당 정규식이 모바일 Safari(사파리)와 크롬의 브라우저 엔진에서는 돌아가지 않는 코드였다고 한다.
혹시 PC에서는 정상적으로 코드가 작동을 하는데,
모바일에서 코드가 갑자기 멈춰버린다면
그리고 안드로이드에서는 정상작동이 되는데
IOS에서만 동작을 안 한다면 동작이 안 하는 정규식을 사용을 한 코드가 있는지를 확인해보도록 하자
'FrontEnd > Javascript' 카테고리의 다른 글
[Javascript] Math 객체를 이용해서 랜덤 값 만들기(Math.random) (0) | 2022.03.14 |
---|---|
[javaScript]JSON 과 javascript의 Object 차이 바로 알기 (0) | 2022.03.07 |
[Javascript] 자바스크립트 표현식 비구조화할당(Destructuring assignment) 이해하기 (0) | 2021.09.12 |
[JavaScript/Vue] 자바스크립트로 크롬 전체 화면 실행 및 종료하기 (0) | 2021.05.25 |
[node] 노드 버전 확인과 설치된 npm 특정 버전 확인하는 방법 (0) | 2021.05.19 |