[JS] 자바스크립트 문자열 치환(replace)

자바스크립트에서 문자열 치환 하는 방법입니다.

단순히 replace를 사용하면 문자열에 2번이상 중복된 문자열까지 치환되지 않습니다. 그래서 replace 함수도 많이 만들어서 사용합니다.

문자열 전체 치환을 하기 위한 방법 중 가장 간단한 방법을 알려드립니다.

위 방법은 정규식을 이용한 텍스트 치환입니다

replace 첫번째 인자로 “(따옴표) 대신 /(슬래시) 를 사용하며 마지막 슬래시 뒤로는 정규식 옵션이 들어갑니다.

 

g : 슬래시 안에 정의된 조건이 속한 모든 문자열

i : 대소문자 구분 없이 문자열을 치환할 경우

m : 여러줄의 문자열인 경우

 

i 옵션의 경우 대소문자 구분없이 치환시켜주는데 이경우 예기치 못한 문자열도 치환 될 수 있으니 가급적 i이 없이 대소문자를 구분하여 치환하는걸 권장합니다.

[JS] 중첩된 문자열 제거하는 방법

한 텍스트 구문에서 중첩되는 문자열을 제거하는 함수입니다.

예를 들어 “사과;;;바나나;;파인애플;배;;;포도;” 라는 문자열이 있을때 중복된 세미콜론을 제거하고 하나의 세미콜론만 가지게 하고 싶습니다. 즉, “사과;바나나;파인애플;배;포도;” 로 변환하고자 합니다.

이 때 흔히 아래와 같이 replace를 이용해 치환합니다.

하지만 결과는 “사과;;바나나;파인애플;배;;포도;” 가 될 것입니다. replace가 한 번 더 실행되어야 원하는 결과를 얻을 수 있습니다. 중첩문자(세미콜론)이 3개 있을땐 2번, 4개 있을땐 3번 replace가 실행되어야 하는데 이 말의 의미는 반목문(loop)를 실행해야 한다는 것입니다.

중첩문자를 제거하기 위한 함수를 아래와 같이 만들어 봤습니다.

 

이 함수의 사용 예는 다음과 같습니다.

* 참고로 함수 내용안에 jQuery 셀렉터가 사용되고 있기 때문에 jQuery 라이브러리가 필요합니다.

[JS] 팝업창 닫는 스크립트 실행 시 확인창 없애는 방법

* 확인 결과 이 방법은 크롬 브라우저에서는 문제가 있는 듯 합니다. 해결되면 내용 추가할 예정입니다.

팝업창을 띄우고 무언가를 선택하거나 닫기 버튼을 누르면 현재 팝업창이 닫히는 것을 구현하고자 할때 단순하게는 window.close(); 을 사용합니다. 하지만 이 경우 “창을 닫으시겠습니까?” 확인창이 출력되어 바로 닫히지 않습니다.

그럴땐 흔히 이런 방법을 사용합니다.

포커스에 변화를 주어 확인창이 뜨지 않고 바로 팝업창을 닫게 하는 방법입니다. 하지만 이 방법에도 문제가 있습니다. IE8이하에서는 제대로 동작하지 않는다는 것이죠.

그래서 아래 방법을 사용합니다.

이 방법은 IE8이하에서도 문제없이 동작합니다.

[JS] 소수점 기본 연산 함수

이전에 올려드렸던 PHP 소수점 연산 함수의 Javascript 버전입니다. 로직 구조는 동일합니다.

 

[JS] .js 파일에서 외부 js파일 가져오는 방법

간혹 특수한 경우인데 따로 파일로 뺀 js파일안에 외부 js파일을 불러와야하는 상황이 생깁니다.
이런 경우에는 여러가지 방법이 있는데 그 중에서 가장 간단한 방법 한 가지를 소개합니다.

보시면 아시겠지만 아주 간단한 방법입니다. document.write를 이용한 방법이죠.
그 외의 여러 외부 js파일을 순차적으로 불러오거나하는 방법은 이 형태로는 불가능하고 다른 방법을 사용해야 합니다. 이 방법은 단지 순서에 상관없이 js파일을 불러와야하는 경우 사용됩니다.