Front-End

[Vue-js] 정규식 스크립트 모음(휴대폰 / 이메일 / 일반 전화번호 /비밀번호)

저장 전에 벨리데이션 체크하는 로직을 추가하였더니

사용자가 입력시 불편할것 같다며 다시 빼달란다.

나중에 필요할 때 가져다가 사용하자.

    /**
     * 휴대전화 번호 체크 정규식
     */
    checkPhoneNumber(value) {
      const regex = /^d{3}-d{3,4}-d{4}$/;
      if (regex.test(value) === true) return true;
      return false;
    },

    /**
     * 일반전화 번호 체크 정규식
     */
     checkTelNumber(value) {
      const regex = /^d{2,3}-d{3,4}-d{4}$/;
      if (regex.test(value) === true) return true;
      return false;
    },


    /**
     * 이메일주소 체크 정규식
     */
     checkEmail(value) {
      // eslint-disable-next-line no-useless-escape
      const regex = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
      if (regex.test(value) === true) return true;
      return false;
      
      또는 
      const format = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$/;
      return format.test(email);      
    },

    /**
     * 비밀번호 정규식
     * 특수문자 / 문자 / 숫자 포함 형태의 8~15자리 이내의 암호 정규식
     */
     checkPasswd(value) {
      const regex = /^.*(?=^.{8,15}$)(?=.*d)(?=.*[a-zA-Z])(?=.*[!@#$%^&+=]).*$/;
      if (regex.test(value) === true) return true;
      return false;
    },

    /**
     * 비밀번호 정규식
     * 숫자와 문자 포함 형태의 6~12자리 이내의 암호 정규식
     */
     checkStrNumPasswd(value) {
      const regex = /^[A-Za-z0-9]{6,12}$/;
      if (regex.test(value) === true) return true;
      return false;
    },

아이디 체크

// 아이디 체크(영문 또는 영문+숫자 조합 여부)
 checkUserId(src) {
  if (src !== undefined) {
    const reg = /^[a-zA-Z]+[a-zA-Z0-9]{8,30}$/;
    if (src.match(reg)) {
      return true;
    }
  }
  return false;
},

텍스트의 n, r을 <br>로 치환

convertNewLineToBrTag(str) {
  let strValue = str;
  if (strValue) {
	strValue = strValue.replace(/(?:rn|r|n)/g, '<br />');
  } else {
	strValue = '';
  }
  return strValue;
},

XML객체를 JSON형식으로 변환

/**
 * XML객체를 JSON형식으로 변환
 */
convert_xml2json(xml) {
  let obj = {};
  if (xml.children.length > 0) {
	for (let i = 0; i < xml.children.length; i += 1) {
	  const item = xml.children.item(i);
	  if (typeof (obj[item.nodeName]) === 'undefined') {
		obj[item.nodeName] = this.$_comm_xml2json(item);
	  } else {
		if (typeof (obj[item.nodeName].push) === 'undefined') {
		  const old = obj[item.nodeName];

		  obj[item.nodeName] = [];
		  obj[item.nodeName].push(old);
		}
		obj[item.nodeName].push(this.$_comm_xml2json(item));
	  }
	}
  } else {
	obj = xml.textContent;
  }
  return obj;
},

 

UUID 생성

   
    // UUID 생성
   getGuid() {
      function s4() {
        return ((1 + Math.random()) * 0x10000 || 0).toString(36).substring(5);
      }
      return s4() + s4().concat('-') + s4().concat('-') + s4().concat('-') + s4().concat('-') + s4() + s4() + s4();
    },

 

랜덤 문자열 생성

    // 랜덤문자열 생성
    randomStr() {
      const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz';
      let randomStr = '';
      for (let index = 0; index < 8; index += 1) {
        const rnum = Math.floor(Math.random() * chars.length);
        randomStr += chars.substring(rnum, rnum + 1);
      }
      return randomStr;
    },

 

파일사이즈 체크하여 표시하기

// 파일사이즈 표시
bytes(bytes = 0, decimals) {
  const k = 1024;
  const dm = decimals <= 0 ? 0 : decimals || 2;
  const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
  const i = Math.floor(Math.log(bytes) / Math.log(k));
  const retVal = parseFloat((bytes / (k ** i)).toFixed(dm));
  return `${retVal} ${sizes[i]}`;
},

// 파일사이즈 표시
dataURLtoFile(dataurl, fileName) {
  const arr = dataurl.split(',');
  const mime = arr[0].match(/:(.*?);/)[1];
  const bstr = atob(arr[1]);
  let n = bstr.length;
  const u8arr = new Uint8Array(n);

  while (n > 0) {
	n -= 1;
	u8arr[n] = bstr.charCodeAt(n);
  }
  return new File([u8arr], fileName, { type: mime });
},

 

수치값 3자리 콤마 적용(금액, 돈 표기 등)

numberComma(value) {
  const rtnValue = `${value}`;
  return String(rtnValue).replace(/B(?=(d{3})+(?!d))/g, ',');
},

 

숫자를 제외한 모든 문자 제거

numberOnly(value) {
  const rtnValue = `${value}`;
  return String(rtnValue).replace(/[^d]+/g, '');
},

 

XML 형식의 텍스트 파일을 XML 객체로 변환

 /**
 * XML 형식의 텍스트 파일을 XML 객체로 변환
 * @param {XML객체} xmlStr XML형식의 텍스트파일
 */
convertStringToXml(xmlStr) {
  let returnDoc = '';
  if (window.DOMParser) {
	const dp = new window.DOMParser();
	returnDoc = dp.parseFromString(xmlStr, 'text/xml');
  } else {
	const xmlDoc = new window.ActiveXObject('Microsoft.XMLDOM');
	xmlDoc.async = 'false';
	xmlDoc.loadXML(xmlStr);

	returnDoc = xmlDoc;
  }
  return returnDoc;
},

 

[REFERENCE]

 

Leave a Reply

error: Content is protected !!