2009/03/05 13:57

Javascript 랜덤문자열 생성 소스

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>Random String</title>

<meta name="generator" content="editplus" />

<meta name="author" content="" />

<meta name="keywords" content="" />

<meta name="description" content="" />

</head>

 

<body>

 

<script type="text/javascript">

function RndStr() {

        this.str = '';

        this.pattern = /^[a-zA-Z0-9]+$/;

 

        this.setStr = function(n) {

               if(!/^[0-9]+$/.test(n)) n = 0x10;

               this.str = '';

               for(var i=0; i<n-1; i++) {

                       this.rndchar();

               }

        }

 

        this.setType = function(s) {

               switch(s) {

                       case '1' : this.pattern = /^[0-9]+$/; break;

                       case 'A' : this.pattern = /^[A-Z]+$/; break;

                       case 'a' : this.pattern = /^[a-z]+$/; break;

                       case 'A1' : this.pattern = /^[A-Z0-9]+$/; break;

                       case 'a1' : this.pattern = /^[a-z0-9]+$/; break;

                       default : this.pattern = /^[a-zA-Z0-9]+$/;

               }

        }

 

        this.getStr = function() {

               return this.str;

        }

 

        this.rndchar = function() {

               var rnd = Math.round(Math.random() * 1000);

 

               if(!this.pattern.test(String.fromCharCode(rnd))) {

                       this.rndchar();

               } else {

                       this.str += String.fromCharCode(rnd);

               }

        }

}

 

var rndstr = new RndStr();

 

//대문자+소문자+숫자 16자리 랜덤

rndstr.setType('');

rndstr.setStr(16);

document.write(rndstr.getStr() + "<br />");

 

//소문자 16자리 랜덤

rndstr.setType('a');

rndstr.setStr(16);

document.write(rndstr.getStr() + "<br />");

 

//소문자+숫자 16자리 랜덤

rndstr.setType('a1');

rndstr.setStr(16);

document.write(rndstr.getStr() + "<br />");

 

//대문자 16자리 랜덤

rndstr.setType('A');

rndstr.setStr(16);

document.write(rndstr.getStr() + "<br />");

 

//대문자+숫자 16자리 랜덤

rndstr.setType('A1');

rndstr.setStr(16);

document.write(rndstr.getStr() + "<br />");

 

//숫자 10자리 랜덤

rndstr.setType('1');

rndstr.setStr(10);

document.write(rndstr.getStr() + "<br />");

 

</script>

 

</body>

</html>

조대리님 감사합니다.
Trackback 0 Comment 0