- 자바스크립트 부분


        /* 숫자입력단위 콤마(",") & 입력값 숫자체크 */

    var SetComma = function(str) {

        var regMustNumberComma = /^[0-9|,]+$/;

        var regMustNoStartZero = /^[0]/;

        

        str = str.replace(/,/g,'');

        var retValue = "";

            for( i = 1; i <= str.length; i++ ) {

                if( i > 1 && (i%3) == 1 )

                    retValue = str.charAt(str.length - i) + "," + retValue;

                else

                    retValue = str.charAt(str.length - i) + retValue;

            }

            if( regMustNoStartZero.test(retValue) == true && window.event.keyCode != 9 ) {

                alert("입력숫자는 '0'으로 시작할 수 없습니다.");

                return "";

            }

            if( regMustNumberComma.test(retValue) == false ) {

                alert("숫자만 입력하실 수 있습니다.");

                return "";

            }

            return retValue;

    };



- 입력 폼

<input type="text" class="text" name="remvlPointer" size="20" onkeyup="this.value=SetComma(this.value)" value="${dataBean.remvlPointer}"/>



- 주의사항

입력폼에 사용자가 숫자를 입력할때 동적으로 천단위로 콤마를 찍어주고 DB에 INSERT 할때에는 콤마를 제거해주는 작업을 해주고 INSERT 해야한다. 까먹지마...

- 콤마제거하는 JAVA 단 메서드(Null 체크하는 Validator.isEmpty() 는 회사프레임워크 메서드다. )


    public static String getPureNumber(String inquireParam) {


        String returnStr = "";


        if( Validator.isEmpty(inquireParam) ) {

            returnStr = String.valueOf(StringUtil.ZERO);

        }

        else{

            inquireParam = inquireParam.replaceAll(",", "");

            returnStr = inquireParam;

        }

        return returnStr;

    }

- 디비에서 SELECT 해서 화면에 뿌려줄때는 또 콤마를 찍어야 되겟지?

    public static String getDecimalFormat(long inquireParam) {

        String returnStr = "";


        DecimalFormat format = new DecimalFormat("#,##0");

        returnStr = format.format(inquireParam);


        return returnStr;

    }


<%

    /* 사용자 IP */

    String userAddress = request.getRemoteAddr();

    /* 사용자 레퍼러(이전 페이지) */

    String userReferer = request.getHeader("referer");

%>


    <script type="text/javascript">

    $().ready(function() {

        

    /* 사용자 OS */

    var userOs = "";

   

        /* 브라우저 확인 */

        var Browser = { a : navigator.userAgent.toLowerCase() }

        var browserNm = "";

        var browserVr = "";

        

        if( Browser.a.indexOf('msie 6') != -1 ) {

            browserNm = "Internet Explorer";

            browserVr = "v.6";

        }

        if( Browser.a.indexOf('msie 7') != -1 ) {

            browserNm = "Internet Explorer";

            browserVr = "v.7";

        }

        /* IE8 부터는 msie 값으로 브라우저 버전을 분별할수 없음 trident 값으로 해야한다. */

        if( Browser.a.indexOf('trident/4.0') != -1 ) {

            browserNm = "Internet Explorer";

            browserVr = "v.8";

        }

        if( Browser.a.indexOf('trident/5.0') != -1 ) {

            browserNm = "Internet Explorer";

            browserVr = "v.9";

        }

        if( Browser.a.indexOf('trident/6.0') != -1 ) {

            browserNm = "Internet Explorer";

            browserVr = "v.10";

        }

        if( !!window.opera ) {

            browserNm = "opera";

            browserVr = "opera";

        }

        if( Browser.a.indexOf('safari') != -1 ) {

            browserNm = "safari";

            browserVr = "safari";

        }

        if( Browser.a.indexOf('applewebkit/5') != -1 ) {

            browserNm = "safari3";

            browserVr = "safari3";

        }

        if( Browser.a.indexOf('mac') != -1 ) {

            browserNm = "mac";

            browserVr = "mac";

        }

        if( Browser.a.indexOf('chrome') != -1 ) {

            browserNm = "chrome";

            browserVr = "chrome";

        }

        if( Browser.a.indexOf('firefox') != -1 ) {

            browserNm = "firefox";

            browserVr = "firefox";

        }

        

        /* 날짜구하기(년/월/일) */

        var date = new Date();

        var thisYear = date.getFullYear();

        var thisMonth = date.getMonth() + 1;

        var thisDate = date.getDate();

        /* 요일구하기 숫자(1:월, 2:화, 3:수, 4:목, 5:금, 6:토, 7:일) */

        var thisDay = date.getDay();

        /* 시간구하기(시/분/초) */

        var thisHours = date.getHours();

        var thisMinutes = date.getMinutes();

        var thisSeconds = date.getSeconds();

        

        /* ********** 날짜가 10월 이전이면 앞에 '0' 붙이기 ********** */

        if( thisMonth < 10 ) {

            thisMonth = "0" + thisMonth;

        }

        

        if( thisHours < 10 ) {

            thisHours = "0" + thisHours;

        }

        /* ********** 날짜가 10월 이전이면 앞에 '0' 붙이기 ********** */

        

  ※ JAVA 카테고리에서 실제서버(CentOS) 에서 

     System.getProperty("os,name"); 로 실패 후 자바 스크립트로 변경작업 내역임.

        /* ********** 사용자 시스템정보(OS) ********** */

        var ua = navigator.userAgent;

        alert("Client ua : " + ua);

        

        if( ua.indexOf("NT 5.0") != -1 ) {

        userOs = "Windows 2000";

        }

        else if( ua.indexOf("NT 5.1") != -1 ) {

        userOs = "Windows XP";

        }

        else if( ua.indexOf("NT 5.2") != -1 ) {

        userOs = "Windows Server 2003";

        }

        else if( ua.indexOf("NT 6.0") != -1 ) {

        userOs = "Windows Vista";

        }

        else if( ua.indexOf("NT 6.1") != -1 ) {

        userOs = "Windows 7 or Server 2008";

        }

        else if( ua.indexOf("NT 6.2") != -1 ) {

        userOs = "Windows 8 or Server 2012";

        }

        else if( ua.indexOf("98") != -1 ) {

        userOs = "Windows 98";

        }

        else if( ua.indexOf("95") != -1 ) {

        userOs = "Windows 95";

        }

        else if( ua.indexOf("Linux") != -1 ) {

        userOs = "Linux";

        }

        else if( ua.indexOf("Mac") != -1 ) {

        userOs = "mac";

        }

        else{

        userOs = "I Don't Know OS";

        }

        /* ********** 사용자 시스템정보(OS) ********** */

운영체제 별 OS Name / OS.version 얻기


String Os_name = System.getProperty("os.name");

String Os_version = System.getProperty("os.version");


Os_name "Windown" 일때, Os_version 으로 Windown 버전을 분별 할 수 있다.


출처 : http://msdn.microsoft.com/en-us/library/windows/desktop/ms724832(v=vs.85).aspx


근데 문제점 발생

- 로컬에서 Tomcat 으로 띄우고 하면 내 윈도우 및 버전이 정상적으로 alert() 로 띄우면 값이 보이는데,

  테스트 이후에 실제 서버(CentOS) 에 올려서 해보면 무조건 sunOS 라고 뜬다..

  모.. CentOS 로 띄웠으니.. 그러게 보이는거야 당연하지만.. 좀 놀랬다. 로컬에서는 잘 되었으니까...

  그래서 Googling 해보니...

  navigator.userAgent 를 써서 시스템 정보를 구해야 한다고 한다.

  navigator.userAgent 를 써도 브라우저 상세 버전은 Version number 로 분기처리를 해야되니 

  microsoft 에서 퍼온 Operation System Version 은 꼭 알아야 할 정보일듯... 

 

 navigator.userAget 이용한 사용자 Os 정보 확인은 JAVASCRIPT 카테고리에서 확인

+ Recent posts