ASP에서 문자열을 비교하는 방법 


안녕하세요.
고코더 입니다.


 1. 문자열을 비교하는 함수를 알아보려고 합니다. 보통 비교연산자로 문자열이 다른지 확인할 수 있지만 함수를 이용해 확실하고 정확하며 다양한 옵션으로 비교가 가능합니다. 

 2. 오늘 사용해볼 문자열 비교 함수입니다. 문자열 두개를 넣고 비교하면 반환 값을 숫자로 돌려줍니다.
StrComp(비교할 문자1, 비교할 문자2, 비교 옵션)

 3. 반환 값을 표로 만들어보았습니다. 해당 반환 값을 가지고 로직을 이어나가시면 됩니다.
조건
설명
반환 값
비교 문자1 < 비교문자2
비교문자1이 작을 때
-1
비교 문자1 = 비교문자2
두 개가 같을 때
0
비교 문자1 > 비교문자2
비교문자1이 클때
1


 4. 3번째 인자에 들어갈 옵션입니다. 1은 대소문자 구별을 하지 않고 0은 대소문자 구별을 하여 비교한다는걸 알아두면 좋을거 같습니다. 
옵션 값 
설명 
이진 비교를 수행(대소문자 구별)
텍스트를 비교(대소문자 구별하지 않음)
null(옵션 값이 없으면)
이진 비교를 수행(대소문자 구별)


 5. 예제입니다. 옵션 1만 같은 문자라고 판단합니다.
1
2
3
4
5
6
7
8
<%
str1 = "gocoder.net"
str2 = "GOCODER.NET"
 
Response.Write strComp(str1, str2) & "<BR>"
Response.Write strComp(str1, str2, 1& "<BR>"
Response.Write strComp(str1, str2, 0& "<BR>"
%>
cs

 6. 결과 화면입니다. 예상한대로 값이 나왔네요. 텍스트만 비교하는 2번째 방법이 특이합니다.




마무리


재밌죠?


댓글을 달아 주세요



ASP에서 문자열을 거꾸로 출력하는 법


안녕하세요.
고코더 입니다.


 1. 한번도 이런 요구 사항을 받아 본적은 없지만 ASP상에서는 문자열을 거꾸로 출력하는 함수가 있습니다.
바로 이 함수입니다. 해당 함수 인자에 문자열을 넣으면 자동으로 문자가 거꾸로 나타납니다. 
StrReverse(문자열)


 2. 예제를 살펴봅니다. 그저 해당 인자에 문자열을 입력하면 준비 완료 입니다.
1
2
3
4
<%
str = "Gocoder.Net"
Response.Write StrReverse(str)
%>
cs

 3. 결과 화면입니다. 정확히 반대로 문자열을 출력합니다. 현업에서 만나보기 어려운 요구사항일거 같습니다.



마무리


로꾸꺼 


댓글을 달아 주세요


자바스크립트 리터럴 문자는 어떤 따옴표로?


안녕하세요.
고코더 입니다. 


 1. 자바스크립트 소스를 보면 문자열을 감싸는 따옴표가 저마다 조금 다른 경우가 있습니다. 
1
2
var a = "문자"
var b = '문자'
cs

 2. 자바(java)에서는 리터럴 문자 즉 한글자 문자열은 작은 따옴표를 사용합니다.
긴 문자열에 작은따옴표를 사용하면 오류가 납니다.

1
2
3
char c = 'g';
String s = "gocoder";
 
cs

 3그리고 반대로 SQL에서는 문자열을 큰 따옴표로 사용하게 되면 오류가 납니다.
1
WHERE gocoder = 'IT';
cs

 4그래서 저마다 의견이 갈리는 경우가 있습니다. 프로시저 개발자들에겐
큰 따옴표로 문자열을 처리한다는게 어색하고 자바 개발자는 반대로
작은 따옴표로 문자열을 감싼다는게 이해 불가입니다.


 5결론적으로 

두개 모두 오류가 나지 않습니다. 그리고 두 가지 사용 가능한 표준이란 겁니다.
그렇다면 다시 말해서 어떤걸 사용해야 한다고 묻는 다면 정답은
규칙을 정하세요! 라고 말씀드리고 싶습니다.
회사에 코딩 규칙을 정할때 보통 자바스크립트 따옴표를 정합니다.
그리고 대부분 작은 따옴효 홀따옴표를 사용하도록 만드는게 대부분입니다.

 6구글에서 정리한 스타일 가이드에 보시면 문자열을 작은 따옴표 홀따옴표로 감싼걸 확인할 수 있습니다.
물런 구글이 만사는 아니지만 그래도 지구에서 가장 IT를 잘하는 회사가 하는걸 따라 하는걸 선택했습니다.


하지만 회사에 규칙에 따라 한가지만 사용하는게 중요합니다.


마무리


Q. 고코더님 그래서 뭘 사용하라고요?
A. 그냥 작은 따옴표 어떠세요?


댓글을 달아 주세요


자바스크립트로 문자 뒤에서부터 제거하기


안녕하세요.
고코더 입니다.



 1. 프론트엔드 개발을 하다보면 꼭 끝에 한 글자가 문제입니다.
이 글자를 짤라내려면 많이 사용하는 방법은 이렇게 하셨을텐데요

1. 문자열 길이를 잰다
2. -1를 한다
3. -1한 길이만큼 가져온다


 2. 그 보다 더 쉬운 방법이 있습니다. 내장 객체인 배열을 다루는 slice()를 이용하는 방법입니다. 
    var text = "http://gocoder.net/";
    textSlice = text.slice(0,-1);
    // http://gocoder.net 

 3. 예제 소스로 다시 한번 살펴보겠습니다.

1
2
3
4
5
6
7
8
9
10
11
<html>
<head>
<script type="text/javascript">
    var text = "http://gocoder.net/";
    textSlice = text.slice(0,-1);
    document.write(text);
    document.write("<br>");
    document.write(textSlice);
</script>
</head>
</html>
cs
 4. 화면처럼 끝에 한자리만 짤라서 사용가능합니다. 
물런 두번째 인자에 -2를 하면 두 글자를 제거 가능합니다. 


마무리


괜히 길게 코딩 했었네요.



댓글을 달아 주세요


문자열 찾기 함수 


안녕하세요.
고코더 입니다.


흔히 ASP나 엑셀 혹은 자바나 스크립트에서
instr이나  indexof를 자주 사용합니다.

특정 문자열이 있으면 해당 문자의 위치를 돌려 주는데
이게 여러가지 로직에서
자주 쓰는 방법입니다.

그런데 PHP에서는
특이한 함수명으로 문자열 찾기 함수가 있습니다

바로 strpos() 입니다.

▼ 제가 직접 작성한 간단한 예시가 있는
아래 소스를 웹에서 구동해보세요.
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
 
echo strpos("GoCoder ITExpress","IT")."번째에 존재함";
 
if (strpos("GoCoder ITExpress","IT")){
    echo "문자열이 존재함";
};
 
if (strpos("GoCoder ITExpress","고코더"=== false){
    echo "문자열이 존재하지 않음";
};
 
?>
cs

▼ 간단한 예시로 실행해보았습니다.


▼ 기본적인 기능은
해당 문자열에 위치를 반환합니다.
strpos("GoCoder ITExpress","IT")
-> 8을 반환 8번째 있으므로

▼ 실무에서는
해당 문자열이 있으면 이라고 if를 많이 쓰게 됩니다.
이런식으로 if 하면 참일 경우 자동으로 로직으로 들어옵니다.
if (strpos("GoCoder ITExpress","IT")){
    echo "문자열이 존재함";
};

▼ 그리고 거짓일 경우에는 
=== false를 씁니다. 
if (strpos("GoCoder ITExpress","고코더") === false){
    echo "문자열이 존재하지 않음";
};


이렇게 하면
기존에 instr, indexof 처럼 이해가 쉬울거라 생각됩니다.




마무리


strpos 좀 처럼 외워지지 않네요


댓글을 달아 주세요


자바스크립트 replace() 사용하기


안녕하세요
고코더 입니다.

replace 는 서버언어에서 가장 유용한 함수 입니다.
특정문자를 치환해주는 가장 쉬운 방법이죠

자바스크립트도 당연히 replace.가  존재하는데 
문제는 문자열을 하나만 바꿔 줍니다.


replace() 사용법



▼ replace() 기본 사용법
1
2
var str = "gocoder"
str.replace("o","x");
cs
▼ 사용법
"문자열".replace("대상문자","바뀌어 보여질 문자")

▼ 결과 값


이렇게 replace는 하나의 문자만 치환하고
종료 합니다. 그래서 서버사이드 언어에서 사용하던 
그 replaceall이 아니죠.
그래서 방법이 필요 합니다.




replaceAll() 함수로 사용하기


우리에겐 replaceall 이 필요합니다. 

서버사이드 언어처럼 replaceAll을 사용하려면
아래 함수를 이용하면 됩니다.

▼ replaceAll 함수 
1
2
3
4
5
6
function replaceAll(str, searchStr, replaceStr) {
  return str.split(searchStr).join(replaceStr);
}
 
var str = "gocoder"
replaceAll(str,"o","x");
cs

▼ 사용법
replaceAll("문자열","찾을 문자열","대체할 문자열")

▼ 결과 값




replace()로 정규식을 이용하기


replaceall 함수를 정의하기가 싫고
소스가 너무 지저분 해진다면

▼replace()를 정규식으로 사용하시면 됩니다.
아래 코드를 실행하면
1
"gocoder".replace(/o/gi,"x");
cs

▼사용법
replace(/대상문자열/gi, "x");

▼ 결과 값


이렇게 간단하게 replaceall을 구현 할 수 있습니다.
사실 replace 기능에 정규식을 담아 쓰는게 표준이긴 합니다.


마무리


replaceall 이 기본 함수가 아닌게 아쉽습니다.


댓글을 달아 주세요


mysql에서 문자열 연결 하기 붙이기


안녕하세요. 고코더 입니다.

오늘은 MYsql에서 문자열을 합칠때 쓰는 함수인
concat() 와 concat_ws() 사용법을 알려드리겠습니다.

mssql과 오라클과 달리 함수를 이용해
합칠 수 있는건

장점이자 단점 같네요


1. CONCAT()




Mysql의 문자를 합치닌 함수 입니다. 
엑셀의 CONCAT랑 똑같은 기능의 함수입니다.

예제를 보시겠습니다.

1
2
select concat("g","o","c","o","d","e","r");
-> "gocoder"
cs

1
2
select concat("g","o","c",null,"d","e","r");
-> null
cs

concat는 이렇게 쉼표로 문자열을 합칠수 있습니다.
그런데 만약 합치는 함수 안에 null이 들어가면
결과 값도 null이 반환 됩니다.

테이블 내의 결과 값을 이용해 update를 할때 많이 쓰게 됩니다.




2. CONCAT_WS()



concat 와 같은 기능이지만 
첫번째 인자 값은 구분 값입니다. 예를 들면

첫번째 인자 값에 쉼표 , 를 넣었다면
1
2
select concat_ws(",","g","o","c","o","d","e","r");
-> "g,o,c,o,d,e,r"
cs

이렇게 글자마다 쉼표로 구분해서 결과 값이 나오게 됩니다.

그리고 null 이 존재하면 해당 존재 값은
무시하고 글자를 합칩니다.
1
2
select concat_ws(",","g","o","c","o","d","e","r",null);
-> "g,o,c,o,d,e,r"
cs


마무리


마치 엑셀을 하듯 문자열을 합치기 쉽게
함수를 만들어 놓았습니다.
편리한 Mysql



댓글을 달아 주세요