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
자신을 불행한 존재라고 생각하는 사람은 아직도 더 불행해질 여지가 남아있다. 아주 작은 일에도 큰 기쁨을 느끼는 사람에게는 그 어떤 불행도 위력을 상실해 버리고 만다. 그러나 아주 작은 일에도 기쁨을 느낄 수 있는 경지에 이르기까지는 어차피 여러 가지 형태의 불행을 감내하지 않을 수가 없다. 불행이란 알고 보면 행복이라는 이름의 나무 밑에 드리워진 행복만한 크기의 나무그늘 같은 것이다. (이외수 "흐린 세상 건너기" 中에서)