Html & Script

자바스크립트로 공백 문자 체크

페이지 정보

본문

맨날 보기만 하다 올려보네요.

게시판에 글을 찾아보니까 공백을 체크하는 알고리즘이 있더군요. 그런데 그 알고리즘엔 뭔가 빠진 느낌이 들어 봤더니.. 공백이 들어가면 무조건 잡아내더군요.

이건 제가 이곳저곳 자료를 찾아가며 만들어서 시험한 알고리즘입니다.

sub_regx = /^\\s/;
if (form.title.value.search (sub_regx) == 0 || form.title.value.charCodeAt(0) == 12288) {
  alert("일기장 제목을 입력하지 않았습니다.")
  form.title.focus();
  return false;

잘 보면 or 검사를 하는 것을 알 수 있습니다. 정규표현식에서도 ^ 를 추가함으로써 공백문자로 시작되면 잡아냅니다. 그리고 사용자들이 머리 쓰는 것중에 한글 자음 ㄱ 자를 누르고 1번째 특수문자를 잡아내면 첫번째 로직에 통과해 문제가 됩니다. 그래서 생각한 것이(생각하기 보다 상사와 싸운뒤에 조언을 얻었네요) 유니코드값을 이용해 출력해내는 것이었습니다.(원래는 이거였는데 글 올리고 나서 코드를 수정했네요...)

우선 위와 같이 하면 공백문자로 시작되거나 ㄱ자를 누르고 1을 눌러 특수문자를 잡아냅니다.  게시판 제목 같은데 사용하면 비교적 유용하게 쓰일 것 같네요.

이건 사족입니다만. 공백문자도 유니코드로 잡아낼 수 있는데, 왜 정규표현식을 이용해야 했냐만 물음이 있을 것 같아 달아놓습니다. 위의 \\s 는 캐리지 리턴, 라인피드, 폼피드, 수평, 수직 탭을 모두 잡아냅니다.  그래서 위의 기능을 모두 유니코드로 뽑아내려면 시간만 더 걸리기에 정규표현식으로 처리했습니다. 합쳐도 될 것 같긴 하네요.

늦은 뒷북이 아니기를...

관련자료

등록된 댓글이 없습니다.
Today's proverb
남을 비난하는 것만큼 쉬운 일은 없다. 어떤 일이 그릇되었다는 것을 아는 데는 그리 많은 것이 필요하지 않다. 하지만 어떻게 하면 그것을 다시 바르게 할 수 있는가를 아는 데는 남다른 눈썰미가 있어야 한다. (빌 로저스)