Javascript2009. 3. 4. 16:51

가끔 의미없는 랜덤문자열이 필요할때가 있는데 Timestamp 같은 날짜가 관련된것 보다는
정말 아무런 의미도 없는 무작위 문자열을 필요한 길이 만큼 생성해서 사용할 수 있도록 구현해 보았다.


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();

rndstr.setType(0); //대문자+소문자+숫자
rndstr.setStr(32); //32자리
document.write(rndstr.getStr() + "<br />");

rndstr.setType('a'); //소문자
rndstr.setStr(16); //16자리
document.write(rndstr.getStr() + "<br />");

rndstr.setType('A'); //대문자
rndstr.setStr(16); //16자리
document.write(rndstr.getStr() + "<br />");

rndstr.setType('1'); //숫자
rndstr.setStr(10); //10자리
document.write(rndstr.getStr() + "<br />");

'Javascript' 카테고리의 다른 글

sleep() in JavaScript  (0) 2009.07.15
자바스크립트 숫자 세자리마다 콤마(,) 자동 찍기  (0) 2009.03.31
자바스크립트 폼 리셋  (0) 2009.03.31
Posted by Main()