2016년 8월 24일 수요일

자주쓰는 스크립트

/*
 * 공통스크립트 함수를 정의
 * fn_ 을 앞에 붙여서 사용해 주십시오.
 */

//값을 넘겼을때 널이나 undefined면 공백값을 리턴
function fn_getNullValueToEmptyValue(obj)
{
if(obj == null || (typeof obj == 'undefined')){
return "";
}else{
return obj;
}
}

//문자사이에 공백이 있을때 제거
//var str = "ab c d efg"; ==> abcdefg
function fn_getStrRemoveSpace(str)
{
if(str == null ||  (typeof obj == 'undefined')){
return str;
}else{
return str.replace(/\s/g,"");
}
}

//날짜로 넘어온 값이 없을 경우 xxxx.01.01 에서 .. 가 나온다 이 부분을 제거
function fn_getEmptyDateToDoublePriod(str)
{
if(str == null ||  (typeof obj == 'undefined')){
return str;
}else{
return str.replace("..","");
}
}

//replaceAll
//str: 전체 문자열, currchar : 바꿀 대상 문자열, repchar : 변경할 문자열
function fn_replaceAll(str, currchar, repchar){
return str.split(currchar).join(repchar);
}

function byteArray2String (bary) {

var result = [];

for(var i = 0;i< bary.length;i+=2) {

var h = (bary[i] << 8);

var d =  h + bary[i+1];

result.push(d);

}


return String.fromCharCode.apply(String, result);


//return result;

}


//StringBuffer 를 사용할 수 있게 선언
/*
아래와 같이 사용
var sb = new StringBuffer();
sb.append("Hello ");
sb.append("Java");
sb.append("script!");
document.write(sb.toString());
*/

var StringBuffer = function() {
    this.buffer = new Array();
};

StringBuffer.prototype.append = function(str) {
    this.buffer[this.buffer.length] = str;
};

StringBuffer.prototype.toString = function() {
    return this.buffer.join("");
};
//StringBuffer 선언 끝


//영문대문자 && 숫자만 입력되게
function fn_isAlphaNum(){
var mkey = event.keyCode;

if ( (mkey<48||mkey>57) &&(mkey<65||mkey>90)&&(mkey<97||mkey>122))
{
 event.returnValue=false;
}
}

//날짜 유효성 체크
function isDate(yyyymmdd)
{
  var regExp = new RegExp("-","g");              
  var yyyymmdd = yyyymmdd.replace(/-/g,"").replace(regExp,"");
  if(yyyymmdd.length != 8)
  return false;

  var yyyy       = yyyymmdd.substr(0,4);
  var mm         = yyyymmdd.substr(4,2);
  var dd         = yyyymmdd.substr(6,2);            

  var date =new Date(yyyy+'/'+mm+'/'+dd );
  var month = date.getMonth() + 1;
  var day = date.getDate() ;

  if( month !=String(mm))
  return false;
  if( day !=String(dd))
  return false;
  else
  return true;

}

function isDate2(yyyymmdd)
{
  if(yyyymmdd.length != 8)
  return false;

  var yyyy       = yyyymmdd.substr(0,4);
  var mm         = yyyymmdd.substr(4,2);
  var dd         = yyyymmdd.substr(6,2);            

  var date =new Date(yyyy+'/'+mm+'/'+dd )
  var month = date.getMonth() + 1;
  var day = date.getDate() ;

  if( month !=String(mm))
  return false;
  if( day !=String(dd))
  return false;
  else
  return true;

}

//html 문자형을 치환
function fn_escapeHtml(str)
{
val = fn_getNullValueToEmptyValue(str);
val = val.replace(/&/g, "&amp;");
val = val.replace(/</g, "&lt;");
val = val.replace(/>/g, "&gt;");
//val = val.replace(/\s/g, "&nbsp;");  //모든 공백을 의미
//val = val.replace(/ /g, "&nbsp;");  //한칸 띄기를 의미
val = val.replace(/\r\n/g, "<br />");
val = val.replace(/\n/g, "<br />");
val = val.replace(/'/g, "&#39;");
val = val.replace(/"/g, "&quot;");
return val;
}

//html 문자형을 치환
function fn_escapeHtml2(str)
{
val = fn_getNullValueToEmptyValue(str);
val = val.replace(/&/g, "&amp;");
val = val.replace(/</g, "&lt;");
val = val.replace(/>/g, "&gt;");
//val = val.replace(/\s/g, "&nbsp;");  //모든 공백을 의미
val = val.replace(/ /g, "&nbsp;");  //한칸 띄기를 의미
val = val.replace(/\r\n/g, "<br />");
val = val.replace(/\n/g, "<br />");
val = val.replace(/'/g, "&#39;");
val = val.replace(/"/g, "&quot;");
return val;
}

/*
 * 자릿수 앞자리 0 채우기
 * fn_fillZeros([num], [자릿수])
 * > fn_fillZeros(12, 3) -> '012'
 */
function fn_fillZeros(n, digits) {
var zero = '';

n = n.toString();

if (n.length < digits) {
for (var i = 0; i < digits - n.length; i++) {
   
zero += '0';
   }
}

return zero + n;
}

$(document).ready(function(){
/*
* 입력화면에서 사용된다.
* _n: 숫자만
* _h : 한글만
*  _j : 주소타입(333-12)
*  _p: 숫자소수점(0.3)
*  8:backspace , 9 : tabkey
*/

$(document).on("keydown", "input", function(event){
//if((event.keyCode>47)&&(event.keyCode<58) || event.keyCode == 46) {
  var keycode = (event.keyCode ? event.keyCode : event.which);
if($(this).attr("id") != null || $(this).attr("id")=="")
{
  //number 입력가능
  if($(this).attr("id").indexOf("_n") != -1){
//alert(keycode);
if((keycode>47)&&(keycode<58) || (keycode>=96 && keycode<=105) ||  keycode == 8 || keycode==9 || keycode==46) {

} else {
event.preventDefault();
}
}
//_j : 주소
else if ($(this).attr("id").indexOf("_j") != -1){
if((keycode>47)&&(keycode<58) || (keycode>=96 && keycode<=105)  || keycode == 8 || keycode == 189 || keycode == 109 || keycode==9) {

} else {
event.preventDefault();
}
}
//소수점
else if ($(this).attr("id").indexOf("_p") != -1){
if((keycode>47)&&(keycode<58) || (keycode>=96 && keycode<=105)  || keycode == 8 || keycode == 190 || keycode == 110 || keycode==9) {

} else {
event.preventDefault();
}
}
//날짜형(calendar)
else if($(this).attr("id").indexOf("_c") != -1){
//alert(keycode);
if((keycode>47)&&(keycode<58) || (keycode>=96 && keycode<=105) ||  keycode == 8 || keycode==9 || keycode==46) {

} else {
event.preventDefault();
}
}
}
    });

});

2016년 3월 17일 목요일

jquery 모바일 changePage

$.mobile.changePage(url, option)
-- option
* changeHash:true >> 히스토리 저장 (기본값)
    * changeHash:false >> 히스토리 저장 하지 않음

스크립트 정리(2)

1. 바이트 to String
function byteArray2String (bary) {
var result = [];
for(var i = 0;i< bary.length;i+=2) {
var h = (bary[i] << 8);
var d =  h + bary[i+1];
result.push(d);
}
return String.fromCharCode.apply(String, result);
}

2. 영문대문자 && 숫자만 입력되게
function fn_isAlphaNum(){
var mkey = event.keyCode;
 if ( (mkey<48||mkey>57) &&(mkey<65||mkey>90)&&(mkey<97||mkey>122)){
 event.returnValue=false;
}
}

3.날짜 유효성 체크
function isDate(yyyymmdd)
{
  var regExp = new RegExp("-","g");              
  var yyyymmdd = yyyymmdd.replace(/-/g,"").replace(regExp,"");
  if(yyyymmdd.length != 8){
  return false;
           }
  var yyyy       = yyyymmdd.substr(0,4);
  var mm         = yyyymmdd.substr(4,2);
  var dd         = yyyymmdd.substr(6,2);            
  var date =new Date(yyyy+'/'+mm+'/'+dd );
  var month = date.getMonth() + 1;
  var day = date.getDate() ;
  if( month !=String(mm)){
  return false;
           }
  if( day !=String(dd)) {
  return false;
   }else{
  return true;
           }
}

function isDate2(yyyymmdd)
{
  if(yyyymmdd.length != 8){
  return false;
           }
  var yyyy       = yyyymmdd.substr(0,4);
  var mm         = yyyymmdd.substr(4,2);
  var dd         = yyyymmdd.substr(6,2);            

  var date =new Date(yyyy+'/'+mm+'/'+dd )
  var month = date.getMonth() + 1;
  var day = date.getDate() ;

  if( month !=String(mm)){
  return false;
           }
  if( day !=String(dd)){
  return false;
   }else{
  return true;
           }
}

4. html 문자형을 치환
function fn_escapeHtml(str)
{
val = fn_getNullValueToEmptyValue(str);
val = val.replace(/&/g, "&amp;");
val = val.replace(/</g, "&lt;");
val = val.replace(/>/g, "&gt;");
//val = val.replace(/\s/g, "&nbsp;");  //모든 공백을 의미
//val = val.replace(/ /g, "&nbsp;");  //한칸 띄기를 의미
val = val.replace(/\r\n/g, "<br />");
val = val.replace(/\n/g, "<br />");
val = val.replace(/'/g, "&#39;");
val = val.replace(/"/g, "&quot;");
return val;
}

//html 문자형을 치환
function fn_escapeHtml2(str)
{
val = fn_getNullValueToEmptyValue(str);
val = val.replace(/&/g, "&amp;");
val = val.replace(/</g, "&lt;");
val = val.replace(/>/g, "&gt;");
//val = val.replace(/\s/g, "&nbsp;");  //모든 공백을 의미
val = val.replace(/ /g, "&nbsp;");  //한칸 띄기를 의미
val = val.replace(/\r\n/g, "<br />");
val = val.replace(/\n/g, "<br />");
val = val.replace(/'/g, "&#39;");
val = val.replace(/"/g, "&quot;");
return val;
}

5. 자릿수 앞자리 0 채우기
/*
 * fn_fillZeros([num], [자릿수])
 * > fn_fillZeros(12, 3) -> '012'
 */
function fn_fillZeros(n, digits) {
var zero = '';
n = n.toString();
if (n.length < digits) {
    for (var i = 0; i < digits - n.length; i++) {    
       zero += '0';
   }
}
return zero + n;
}