팡이네

사용자 웹 브라우저 및 버전 확인

function getBrowserInfo(opt) {
	var ua = navigator.userAgent.toLowerCase();
	
	if (ua.indexOf('android') > -1) return 'Android';
	else if (ua.match(/iphone|ipad|ipot/)) return 'iOS';
	
	if (navigator.appName == 'Microsoft Internet Explorer') {
		if (opt == 'n') return 'Explorer';
		else {
			var re = new RegExp('msie ([0-9]{1,}[\\.0-9]{0,})');
			if (re.exec(ua) !== null) {
				if (opt == 'v')
					return parseInt(RegExp.$1);
				else
					return 'Explorer '+ parseInt(RegExp.$1);
			}
		}
	}
	else if (ua.indexOf('trident') != -1 && navigator.product == 'Gecko') { //IE 11 above
		if (opt == 'n') return 'Explorer';
		else {
			var re = new RegExp('trident/.*rv:([0-9]{1,}[\.0-9]{0,})');
			if (re.exec(ua) != null) {
				if (opt == 'v')
					return parseInt(RegExp.$1);
				else
					return 'Explorer '+ parseInt(RegExp.$1);
			}
		}
	}
	else if (/edge/.test(ua)) {
		if (opt == 'n') return 'Edge';
		else {
			if (opt == 'v')
				return parseInt(/edge\/([\d\.]+)/.exec(ua)[1]);
			else
				return 'Edge '+ parseInt(/edge\/([\d\.]+)/.exec(ua)[1]);
		}
	}
	else if (/chrome/.test(ua)) {
		if (opt == 'n') return 'Chrome';
		else {
			if (opt == 'v')
				return parseInt(/chrome\/([\d\.]+) safari/.exec(ua)[1]);
			else
				return 'Chrome '+ parseInt(/chrome\/([\d\.]+) safari/.exec(ua)[1]);
		}
	}
	else if (/firefox/.test(ua)) {
		if (opt == 'n') return 'FireFox';
		else {
			if (opt == 'v')
				return parseInt(/firefox\/([\d\.]+)/.exec(ua)[1]);
			else
				return 'FireFox '+ parseInt(/firefox\/([\d\.]+)/.exec(ua)[1]);
		}
	}
	else if (/safari/.test(ua)) {
		if (opt == 'n') return 'Safari';
		else {
			if (opt == 'v')
				return parseInt(/version\/([\d\.]+) safari/.exec(ua)[1]);
			else
				return 'Safari '+ parseInt(/version\/([\d\.]+) safari/.exec(ua)[1]);
		}
	}
	
	return 'Other';
}

getBrowserInfo('n');	//웹 브라우저 이름
getBrowserInfo('v');	//웹 브라우저 버전
getBrowserInfo();		//웹 브라우저 이름 + 버전

'Javascript & JQuery' 카테고리의 다른 글

체크박스 전체 선택 및 해제  (0) 2016.04.01
입력 데이터가 제대로 된 날짜인지 검사  (0) 2016.04.01
숫자 키입력 검사  (0) 2016.04.01

테이블 안에 있는 체크박스 모두 선택 및 해제
테이블 ID = 'xxxxx_tblList'
전체 선택 체크박스 ID = 'xxxxx_chkAll' 인 경우 뒷부분 선택자 id$ 로 선택
전체 선택 체크박스 역시 영향받기 때문에 thead, tbody 태그로 구분해서
tbody에 있는 체크박스만 처리

$(document).ready(function () {
	$('input[id$="chkAll"]').click(function () {
		var tbl = $('table[id$="tblList"]');
		var checked = $(this).is(':checked');
		$('tbody tr td input:checkbox', tbl).each(function () {
			$(this).prop('checked', checked);
		})
	});
});

//날짜인지 검사
function isDate(d, c) {
    var y, m, d;
    if (d.length == 8) {
        y = parseInt(d.substr(0, 4));
        m = parseInt(d.substr(4, 2));
        d = parseInt(d.substr(6, 2));
    }
    else if (d.length == 10) {
        if (c == null) c = '-';
        var a = d.split(c);
        if (a.length != 3) return false;

        y = parseInt(a[0]);
        m = parseInt(a[1]);
        d = parseInt(a[2]);
    }
    else {
        return false;
    }

    var date = new Date(y, m - 1, d);

    return (date.getFullYear() == y && date.getMonth() + 1 == m && date.getDate() == d);
}

'Javascript & JQuery' 카테고리의 다른 글

사용자 웹 브라우저 및 버전 확인  (0) 2017.03.21
체크박스 전체 선택 및 해제  (0) 2016.04.01
숫자 키입력 검사  (0) 2016.04.01

//숫자 키입력 검사
function isNumberKeyDown(e) {
    e = e || window.event;
    var keyCode = (e.keyCode ? e.keyCode : e.which);

    if (keyCode == 8 || keyCode == 9 || keyCode == 27 || keyCode == 46) return true;	//BackSpace, Tab, ESC, Delete
    if (keyCode == 35 || keyCode == 36 || keyCode == 37 || keyCode == 39) return true;	//Home, End, Left, Right Arrow
    if (e.ctrlKey || e.shiftKey || keyCode == 13) return false; //Enter

    return ((keyCode > 47 && keyCode < 58) || (keyCode > 95 && keyCode < 106));
}



위와 같이 처리해도 한글은 입력되기 때문에 한글 입력을 방지하기 위해 ime-mode 스타일 추가