컴퓨터 엑셀 워드 포토숍 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Previous Post 자바스크립트] 숫자 여부 판단 함수; 숫자인지 문자인지; isNum, isNumeric, ...HTML] 희귀 한자, 한글 완성형(euc-kr)에 입력 방법; 궉채이 선수의 궉씨 성 쓰...HTML 기초] 가장 간단한 한글 웹페이지 예제 소스: HTM, Hello WorldHTML] 주석문 주석 기호, 웹페이지 소스 코드에 설명 붙이기; Comment Remar...HTML] CSS 주석문 주석 기호, 스타일 시트에 설명 붙이기; Comment Remar...HTML] 자바스크립트 주석문 주석 기호, 코드에 설명 붙이기; JavaScript Com...자바스크립트] 오늘 날짜 시간 구하기, 년월일/시분초 출력; Date Time Print ...Perl/펄] 텍스트 파일에서, 개행문자 제거, 한줄로 출력; Text File Delet...전각 문자표] 전각 숫자, 전각 영문 알파벳 문자, 전각 기호 ; Full Width AS...au 파일이란? / au 확장자 파일 구조 문서; File Format

자바스크립트] 문자열 양쪽 공백 제거, 정규식 사용; Trim Trailing Spaces, JavaScript Regex

Sunday, January 14, 2007

문자열의 앞이나 뒤에 붙어 있는 불필요한 공백 문자(스페이스; 탭 문자 포함)를 삭제하는 함수가, 자바스크립트에는 내장되어 있지 않기에, 직접 만들어 주어야 합니다.

' 똠방각하   '

위와 같은 문자열이 있을 때(작은 따옴표는 제외), 앞에 1칸, 뒤에 3칸의 공백이 있는데, 다음의 trim() 함수로 공백을 제거할 수 있습니다.

다만 문자열 속에 포함되어 있는 공백들은 아무리 많아도 그대로 둡니다.


JavaScript Regex: 좌우 스페이스/탭(Tab) 문자 지우기 함수 예제


파일명: test.html
<script type="text/javascript">

var s =  '     AAA BBB       CCC     ';
s = trim(s);

document.write('[' + s + ']' + '<br />');

document.write('<pre>[' + s + ']</pre><br />');




function trim(s) {
  s += ''; // 숫자라도 문자열로 변환
  return s.replace(/^\s*|\s*$/g, '');
}

</script>


위의 예제를 브라우저로 보면
[AAA BBB CCC]

[AAA BBB       CCC]

이렇게 2가지로 출력됩니다. 어떤 경우든 좌우 공백은 깨끗이 정리되었습니다.

1번째 출력 결과를 보면, 문자열 속의 공백까지 1개로 압축된 것처럼 보이지만, 그것은 HTML에서 여러 개의 공백을 1개의 공백으로 표현하기 때문이고, 실제로는 문자열 속의 공백이 사라진 것이 아닙니다.

2번째 결과는, '공백을 있는 그대로 표현하는 태그'인 <pre> 안에 넣어서 출력한 결과인데, 역시 문자열 속의 공백은 그대로 있다는 사실을 알 수 있습니다.



자바스크립트 정규식 설명


replace(/^\s*|\s*$/g, '')

^ : 문자열의 시작
\s* : 임의의 개수의 공백 문자, \s 가 공백, *가 임의의 개수
| : OR 기호
$ : 문자열의 끝
g : 문자열의 모든 부분에 걸쳐 글로벌하게 치환
'' : 치환할 빈 문자열임. 작은따옴표2개임. 빈 문자열로 치환(replace)하면 문자열 삭제가 됨

즉, 문자열의 첫부분에 붙은 공백들과, 끝부분에 붙은 공백들을 모두 삭제하라는 뜻이 됩니다.





0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Categories
Previous Posts
Monthly Archives
Top