74794C6565
8k
2021-04-27 13:58:27
0
392

오늘의 삽질


idabc2021/04/19 

라는 걸로 html 테이블에 아이디값을 넣었다. 

데이터 처리후 저장값을 저 아이디에 넣어줘야 하는데 

'/' 가 들어간 문자열은 제이쿼리에서 아이디값을 인식을 못했다. 

알수없는 표현식으로 에러가 남.


그래서 / 대신에 다른걸로 대체 할까 어쩔까 고민하다가 

나중에 또 / 관련 이슈가 생기면 또 먼가를 해봐야 할것 같아 

이번기회에 공부를 좀 해보기로 했다. 


몇번의 구글링 끝에 \\ 로  escape를 걸어주면 된다는 사실을 알았다. 

그래서 $('#idabc2021\\/04\\/19 ') 로 직접 하드코딩해봤을때는 잘됬는데 

아이디값이 날짜별로 유동이라 변수으로 처리 해서 

let dateId = 'idabc2021/04/19';
dateId  = dateId .replace(/[\/]/g,"\\/");
 $('# '+dateId) 

이런식으로 처리 했을때는 또 알수 없는 표현식으로 에러가 떴다. 


아니... 왜?

백슬래쉬 넣어줬는데 왜 또 에러이지...

이러면서 구글링을 또 열심히 해보다가 

문득 \\ 로 escape 해야 한다는 사실에 주목했다. 

위의 리플레이스 경우 그냥 문자열로 처리를 해준거지 escape 를 한건 아닐것 같다는 생각이 들어 

let dateId = 'idabc2021/04/19';
dateId  = dateId .split(/[\/]/g);
$("#"+dateId[0]+'\\'+"/"+dateId [1]+'\\'+"/"+dateId [2])

이렇게 쪼개서 처리를 했더니 잘됬다. 


이렇게 또 한가지 배워간다.

0
  • 댓글 0

  • 로그인을 하시면 댓글을 등록할 수 있습니다.