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
가을에 피는 국화는 첫 봄의 상징으로 사랑받는 개나리를 시샘하지 않는다. 역시 봄에 피는 복숭아꽃이나 벚꽃을 부러워하지 않는다. 한여름 붉은 장미가 필 때, 나는 왜 이렇게 다른 꽃보다 늦게 피나 한탄하지도 않는다. 그저 묵묵히 준비하며 내공을 쌓고 있을 뿐이다. 그러다가 매미소리 그치고 하늘이 높아지는 가을, 드디어 자기 차례가 돌아온 지금, 국화는 오랫동안 준비해온 그 은은한 향기와 자태를 마음껏 뽐내는 것이다. (한비야)