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 는 캐리지 리턴, 라인피드, 폼피드, 수평, 수직 탭을 모두 잡아냅니다.  그래서 위의 기능을 모두 유니코드로 뽑아내려면 시간만 더 걸리기에 정규표현식으로 처리했습니다. 합쳐도 될 것 같긴 하네요.

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

관련자료

댓글 0
등록된 댓글이 없습니다.
Today's proverb
나는 보석보다도 인격의 아름다움으로 장식되고 싶다. 보석은 재물에서 주어진 반면, 인격은 정신에서 온다. (B. 테일러)