WMLScript : 객체 (2) 제 10 장 1. 스트링 객체 2. charAt()과 length() 메서드 3. compare() 메서드 4. elementAt() 메서드 5. elements(), find() 메서드 6. squeeze(), trim() 메서드 7. insertAt() 메서드 8. removeAt() 메서드 9. replace(), replaceAt() 메서드 10. subString() 메서드 11. toString() 메서드 제 10 장 WMLScript : 객체 (2)
1. 스트링 객체 문자열에 관한 연산을 수행할 때 많이 사용하는 객체 스트링 객체의 메서드들: 문자열에서 공백 제거, 문자열 분리, 문자열 결합, 서브 문자열 검색 스트링 객체의 메서드 객 체 기 능 charAt 지정된 인덱스 번호에 해당하는 문자열의 문자를 반환 compare 두 개의 문자열을 비교 elements 구분기호로 구분된 문자열들의 개수를 반환 elementAt 구분기호로 구분된 문자열들 중에서 지정된 인덱스에 해당하는 문자열을 반환 find 문자열 중에서 찾고자 하는 문자열이 위치하는 첫 번째 인덱스를 반환 format 형식을 지정 제 10 장 WMLScript : 객체 (2)
2. charAt()과 length() 메서드 insertAt 지정된 인덱스 위치에 문자열을 삽입 isEmpty 문자열의 길이가 0인지 여부를 확인 length 문자열의 길이를 확인 removeAt 지정된 인덱스 위치의 문자를 삭제 replace 첫 번째 문자열을 두 번째 문자열로 대치 replaceAt squeeze 문자열에서 연이어 있는 다수의 공백을 한 개의 공백으로 줄임 subString 시작 인덱스 위치부터 지정한 문자개수 만큼의 문자열을 반환 2. charAt()과 length() 메서드 String.charAt() : 문자열에서 주어진 위치에 있는 문자를 반환 String.length() : 문자열의 길이를 반환 제 10 장 WMLScript : 객체 (2)
[예제 10-1] charAt()메서드와 length() 메서드 사용 예 ▶ ch10-1.wml 1 <?xml version="1.0" encoding="ks_C_5601-1987" ?> 2 <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" 3 "http://wapforum.org/DTD/wml12.dtd" > 4 <wml> 5 <card id="index" title="String"> 6 <do type="accept" label="OK"> 7 <go href="ch10-1.wmls#methodA()"/> 8 </do> 9 <p align="center"><b>OK</b>를 클릭하여 스크립트를 실행하세요.</p> 10 </card> 11 <card id="card2" title="string" > 12 <do type="accept" label="HOME"> 13 <prev/> 14 </do> 15 <p align="center"><b>결과 확인</b><br/> 16 $(method1)에서 인덱스 0의 문자는 $(method2) 이고 <br/> 17 문자열의 길이는 $(method3)입니다. </p> 18 </card> 19 </wml> 제 10 장 WMLScript : 객체 (2)
▶ ch10-1.wmls 1 extern function methodA() 2 { 3 var s="ZEBRA"; 4 var variable1; 5 variable1=String.charAt(s,0); 6 WMLBrowser.setVar("method1", s); 7 WMLBrowser.setVar("method2", variable1); 8 WMLBrowser.setVar("method3", String.length(s)); 9 WMLBrowser.refresh(); 10 WMLBrowser.go("#card2"); 11 } 제 10 장 WMLScript : 객체 (2)
예제 10-1의 실행 결과 제 10 장 WMLScript : 객체 (2)
3. compare() 메서드 두 인수의 문자열을 비교 결과 [예제 10-2] String.compare() 메서드 사용 예 - 첫 번째 인수의 문자열 < 두 번째 인수의 문자열 -1 - 첫 번째 인수의 문자열 = 두 번째 인수의 문자열 0 - 첫 번째 인수의 문자열 > 두 번째 인수의 문자열 1 [예제 10-2] String.compare() 메서드 사용 예 ▶ ch10-2.wml 1 <?xml version="1.0" ?> 2 <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" 3 "http://wapforum.org/DTD/wml12.dtd" > 제 10 장 WMLScript : 객체 (2)
5 <card id="main" title="비밀번호 확인" newcontext="true"> 4 <wml> 5 <card id="main" title="비밀번호 확인" newcontext="true"> 6 <do type="accept" label="확인"> 7 <go href="ch10-2.wmls#compp()"/> 8 </do> 9 <p align="center"> 비밀번호를 입력하세요<br/> 10 <input name="pass" type="password" maxlength="6"/> </p> 11 </card> 12 13 <card id="yesc"> 14 <p> 비밀 번호 확인 완료 </p> 15 </card> 16 17 <card id="noc"> 18 <do type="accept" label="재입력"> 19 <go href="#main"/> 20 </do> 21 <p>비밀번호 오류<br/>재입력 버튼을 클릭후<br/>다시 입력하세요</p> 22 </card> 23 </wml> 제 10 장 WMLScript : 객체 (2)
▶ ch10-2.wmls 1 extern function compp() 2 { var p="123456"; 3 var a=WMLBrowser.getVar("pass"); 4 if( String.compare(a,p)==0 ) 5 WMLBrowser.go("ch10-2.wml#yesc"); 6 else 7 WMLBrowser.go("ch10-2.wml#noc"); 8 } 제 10 장 WMLScript : 객체 (2)
예제 10-2의 실행 결과 제 10 장 WMLScript : 객체 (2)
4. elementAt() 메서드 특정 구분기호로 구별된 문자열 중에서 지정된 인덱스 위치의 문자열을 반환 [예제 10-3] String.elementAt() 메서드 사용 예 ▶ ch10-3.wml 1 <?xml version="1.0" ?> 2 <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" 3 "http://wapforum.org/DTD/wml12.dtd" > 4 <wml> 5 <card id="main" title="전화번호 확인"> 6 <do type="accept" label="확인"> 7 <go href="ch10-3.wmls#func()"/> 8 </do> 9 제 10 장 WMLScript : 객체 (2)
▶ ch10-3.wmls 10 <p align="center"> 11 지역번호 : $lo <br/> 12 mobile : $mo<br/> 13 </p> 14 </card> 15 </wml> ▶ ch10-3.wmls 1 extern function func( ) 2 { 3 var loc="053-952-1234"; 4 var mobile="015-123-1234"; 5 var loc0=String.elementAt(loc, 0, "-"); // 문자열(loc) 중에서 구분기호 “-”로 분리된 첫번째 문자열을 반환 6 var mobile0=String.elementAt(mobile, 0, "-"); 7 WMLBrowser.setVar("lo", loc0); 8 WMLBrowser.setVar("mo", mobile0); 9 WMLBrowser.refresh(); 10 } 제 10 장 WMLScript : 객체 (2)
예제 10-3의 실행 결과 제 10 장 WMLScript : 객체 (2)
5. elements(), find() 메서드 String.element() 메서드: 구분기호로 분리된 문자열의 개수를 반환 String.find() 메서드 : 문자열에서 서브문자열의 위치를 반환 [예제10-4] String.find() 메서드 사용 예 ▶ ch10-4.wml 1 <?xml version="1.0" ?> 2 <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" 3 "http://wapforum.org/DTD/wml12.dtd" > 4 <wml> 5 <card id="main" title="이름찾기"> 6 <do type="accept" label="확인"> 7 <go href="ch10-4.wmls#findfunc()"/> 8 </do> 9 <p align="center"> 10 찾을 이름 입력<br/> 11 <input name="sub" format="aaa"/> 12 </p> 13 </card> 제 10 장 WMLScript : 객체 (2)
▶ ch10-4.wmls 14 15 <card id="find" title="찾음"> 16 <p align="center">$sub가 존재합니다. </p> 17 </card> 18 19 <card id="nofind" title="찾지못함"> 20 <p align="center">$sub는 존재하지 않음</p> 21 </card> 22 </wml> ▶ ch10-4.wmls 1 extern function findfunc( ) 2 { 3 var na="bae lee ha"; 4 var f=WMLBrowser.getVar("sub"); 5 if( String.find(na, f) == -1) 6 WMLBrowser.go("ch10-4.wml#nofind"); 7 else 8 WMLBrowser.go("ch10-4.wml#find"); 9 } 제 10 장 WMLScript : 객체 (2)
예제 10-4의 실행 결과 제 10 장 WMLScript : 객체 (2)
6. squeeze(), trim() 메서드 String.squeeze(): 문자열에서 연이어 있는 다수의 공백을 한 개의 공백으로 줄인다. String.trim(): 문자열 앞뒤에 있는 공백을 제거하는 함수 [예제 10-5] String.squeeze() 메서드 사용 예 ▶ ch10-5.wml 1 <?xml version="1.0"?> 2 <!DOCTYPE wml PUBLIC "-//OPENWAVE.COM//DTD WML 1.3//EN" 3 "http://www.openwave.com/dtd/wml13.dtd"> 4 <wml> 5 <card > 6 <do type="accept" label="확인"> 7 <go href="ch10-6.wmls#main()"/> 8 </do> 9 <p>확인을 클릭하세요</p> 10 </card> 11 </wml> 제 10 장 WMLScript : 객체 (2)
예제 10-5의 실행 결과 ▶ ch10-5.wmls 1 extern function main() 2 { var str1="Welcome WMLScript"; 3 var str2=String.squeeze(str1); 4 Dialogs.alert(str1); 5 Dialogs.alert(str2); 6 } 예제 10-5의 실행 결과 제 10 장 WMLScript : 객체 (2)
7. insertAt() 메서드 구분기호로 분리된 문자열의 특정 인덱스 위치에 문자열을 삽입하는 메서드이다. [예제 10-6] String.insertAt() 메서드 사용 예 ▶ ch10-6.wml 1 <?xml version="1.0"?> 2 <!DOCTYPE wml PUBLIC "-//OPENWAVE.COM//DTD WML 1.3//EN" 3 "http://www.openwave.com/dtd/wml13.dtd"> 4 <wml> 5 <card > 6 <do type="accept" label="확인"> 7 <go href="ch10-6.wmls#main()"/> 8 </do> 9 <p>전화번호 입력하세요<br/> 10 <input name="tel" type="text" format="xxxxxxxx4x"/><br/> 11 </p> 제 10 장 WMLScript : 객체 (2)
▶ ch10-6.wmls 12 </card> 13 14 <card id="tel"> 15 <p align="center"> 16 전화 번호 확인<br/> 17 $(phone) 18 </p> 19 </card> 20 </wml> ▶ ch10-6.wmls 1 extern function main() 2 { var ph=WMLBrowser.getVar("tel"); 3 var len = String.length(ph); 4 var phone; 5 6 if( len <= 8 ) 7 phone=String.insertAt(ph,"053", 0, "-"); 8 else 9 phone=ph; 제 10 장 WMLScript : 객체 (2)
예제 10-6의 실행 결과 10 WMLBrowser.setVar("phone", phone); 11 WMLBrowser.go("ch10-6.wml#tel"); 12 } 예제 10-6의 실행 결과 제 10 장 WMLScript : 객체 (2)
8. removeAt() 메서드 문자열에서 지정된 인덱스 위치의 문자열을 삭제한다. insertAt()은 반대 기능을 수행하는 메서드이다. [예제 10-7] String.removeAt() 메서드 사용 예 ▶ ch10-7.wml 1 <?xml version="1.0"?> 2 <!DOCTYPE wml PUBLIC "-//OPENWAVE.COM//DTD WML 1.3//EN" 3 "http://www.openwave.com/dtd/wml13.dtd"> 4 <wml> 5 <card > 6 <do type="accept" label="확인"> 7 <go href="ch10-7.wmls#main()"/> 8 </do> 9 10 <p>주소 & 전화번호 입력<br/> 11 <input name="inf" type="text" format="xxxxxxxxxxxxx5x"/><br/> 12 </p> 제 10 장 WMLScript : 객체 (2)
▶ ch10-7.wmls 13 </card> 14 15 <card id="inf"> 16 <p align="center"> 17 주소 : $(add) <br/> 18 전화번호 : $(phone) <br/> 19 </p> 20 </card> 21 </wml> ▶ ch10-7.wmls 1 extern function main() 2 { var info=WMLBrowser.getVar("inf") ; 3 var a, p ; 4 a=String.removeAt(info, 1, ' ' ) ; 5 // 빈공백으로 분리된 문자열 중에서 첫 번째 인덱스 문자열을 삭제 6 p=String.removeAt(info, 0, ' ' ) ; 7 8 WMLBrowser.setVar("add", a) ; 9 WMLBrowser.setVar("phone", p) ; 10 WMLBrowser.go("ch10-7.wml#inf") ; 11 } 제 10 장 WMLScript : 객체 (2)
예제 10-7의 실행 결과 제 10 장 WMLScript : 객체 (2)
9. replace(), replaceAt() 메서드 String.replace(): 문자열에서 특정 문자열을 다른 문자열로 바꾸어 준다. String.replaceAt(): 구분기호로 구분된 문자열 중에서 인덱스 위치 의 문자열을 다른 문자열로 바꾸어 준다. [예제 10-8] String.replace() 메서드 사용 예 ▶ ch10-8.wml 1 <?xml version="1.0"?> 2 <!DOCTYPE wml PUBLIC "-//OPENWAVE.COM//DTD WML 1.3//EN" 3 "http://www.openwave.com/dtd/wml13.dtd"> 4 <wml> 5 <card > 6 <do type="accept" label="확인"> 7 <go href="ch10-8.wmls#main()"/> 8 </do> 제 10 장 WMLScript : 객체 (2)
▶ ch10-8.wmls 9 <p>주소 입력<br/> 10 <input name="addr" type="text" format="xxxxxxx10x"/><br/> 11 </p> 12 </card> 13 14 <card id="inf"> 15 <p > 주소 : $(add) <br/></p> 16 </card> 17 </wml> ▶ ch10-8.wmls 1 extern function main() 2 { var info=WMLBrowser.getVar("addr"); 3 var a=String.replace(info, "daegu", "Daegu"); 4 // 소문자 “daegu”를 대문자로 시작하는 “Daegu”바꿈 5 WMLBrowser.setVar("add", a); 6 WMLBrowser.go("ch10-8.wml#inf"); 7 } 제 10 장 WMLScript : 객체 (2)
예제 10-8의 실행 결과 제 10 장 WMLScript : 객체 (2)
10. subString() 메서드 문자열에서 시작 인덱스 위치부터 지정한 문자개수 만큼의 문자열 을 반환한다. [예제 10-9] String.subString() 메서드 사용 예 ▶ ch10-9.wml 1 <?xml version="1.0"?> 2 <!DOCTYPE wml PUBLIC "-//OPENWAVE.COM//DTD WML 1.3//EN" 3 "http://www.openwave.com/dtd/wml13.dtd"> 4 <wml> 5 <card > 6 <do type="accept" label="확인"> 7 <go href="ch10-9.wmls#main()"/> 8 </do> 제 10 장 WMLScript : 객체 (2)
▶ ch10-9.wmls 9 <p>주민등록번호 입력<br/> 10 <input name="idno" type="text" format="NNNNNNaNNNNNNN"/><br/> 11 </p> 12 </card> 13 <card id="inf"> 14 <p align="center" > 성별 : $(add) <br/></p> 15 </card> 16 </wml> ▶ ch10-9.wmls 1 extern function main() 2 { var info=WMLBrowser.getVar("idno"); 3 var sex=String.subString(info, 7, 1); 4 if( sex=="1" || sex=="3") 5 WMLBrowser.setVar("add", "male"); 6 if( sex=="2" || sex=="4") 7 WMLBrowser.setVar("add", "female"); 8 if( sex != "1" && sex != "2" && sex != "3" && sex != "4") 9 WMLBrowser.setVar("add", "error"); 10 WMLBrowser.go("ch10-9.wml#inf"); 11 } 제 10 장 WMLScript : 객체 (2)
예제 10-9의 실행 결과 제 10 장 WMLScript : 객체 (2)
11. toString() 메서드 String.toString(value): value 값을 문자열로 바꾸어 주는 메서드이다. ▶ ch10-10.wml 1 <?xml version="1.0"?> 2 <!DOCTYPE wml PUBLIC "-//OPENWAVE.COM//DTD WML 1.3//EN" 3 "http://www.openwave.com/dtd/wml13.dtd"> 4 <wml> 5 <card > 6 <do type="accept" label="확인"> 7 <go href="ch10-10.wmls#main()"/> 8 </do> 9 <p> 이름 입력<br/> 10 <input name="na" type="text" format="aa2a" /> <br/> 11 나이 입력<br/> 제 10 장 WMLScript : 객체 (2)
1 extern function main() 2 { var name1=WMLBrowser.getVar("na"); 12 <input name="age" type="text" format="NN2N" value="20"/><br/> 13 </p> 14 </card> 15 </wml> ▶ ch10-10.wmls 1 extern function main() 2 { var name1=WMLBrowser.getVar("na"); 3 var age1=WMLBrowser.getVar("age"); 4 Dialogs.alert("name : "+name1+"\nage : "+String.toString(age1)); 5 } 제 10 장 WMLScript : 객체 (2)
예제 10-10의 실행 결과 제 10 장 WMLScript : 객체 (2)