Javascript에는 다른 언어에 대부분 있는 trim 메소드가 존재하지 않는다.
그래서 이것을 별도로 function으로 만들어 쓰거나 class으로 구성해서 사용하는데
jQuery에 trim() api가 존재 하길래 평소 쓰던 습관으로
$(text).val().trim() 으로 코드를 작성하였다.
개발할때는 개발도구의 편의성 때문에
크롬이나 파이어폭스로 작업하고 마지막으로 IE에서 테스트 하는데...
위의 코드를 사용한 곳에서 trim()을 사용할 수 없다고 오류가 뿜어져 나온다.
브라우저 호환성의 문제이니 우선 앞뒤 안보고
jQuery의 trim() 문서 [ http://api.jquery.com/jQuery.trim/] 를 보니
IE뿐 아니라 사파리나 기타 다른 OS에서 $(text).val().trim()으로 사용하면 문제가 생긴다는 댓글들이 보인다.
그리고 2가지 해결법을 사용자들이 제시하는데
첫번째 방법은 $.trim(text)로 사용하고 그 결과를 element에 반영
두번째 방법은 .trim(text)대신 글로벌 표준인 .replace(/^\s+|\s+$/g, "")를 사용하는 법.
첫번째 방식은 변수를 추가하거나 코드가 더러워지는 단점이 있으니
두번째 방식으로 변경해서 해결하였다.
jQuery라고 크로스 브라우저를 100% 지원하는 만능은 아니다! ㅋ
조심하고! 반드시 다른 브라우저에서도 확인!
국내용 페이지라면 IE 버전별 확인은 필수!
댓글
댓글 쓰기