다들 웹 사이트에서 내 아이디나 이메일이 ok*****@gmail.com 이런식으로 *표로 표시되는 것은 본 적이 있을 것이다.
보안적으로 요청사항이 들어와서 (비록 DB털리면 다 털리겠지만) 작업했는데,
간지나게 하고 싶어서 정규식 찾아봤는데.... ㅠㅠ 해탈했다.
진짜 정규식은 1도 모르겠다.
도움을 얻어서 간지나는 법을 찾았는데...

 

JS

userEmail = 'abcdefg@gmail.com';

var id =userEmail.split("@")[0].replace(/(?<=.{1})./gi,"*");
var mail =userEmail.split("@")[1].replace(/(?=.{2})./gi,"*");
userEmail= id+"@"+mail;

alert(userEmail);

 

 

결과를 보면

 

id는 a*****으로 나오고 mail은 ******m으로 나온다.

요청사항이 a*****@********m이었기 때문에 저렇게하는 방법을 찾아봤다.

 

출처는 아래 주소이며 나는 이 출처를 통해 배움을 얻은 분에게 카페 답변으로 코드를 받았다.<-

http://8boknote.tistory.com/98

 

근데!!!!!!!!!

사파리에서 정규식이 안 먹더라... ?<= 이 부분에서 문법 에러 탁탁 뱉던데... 

내가 작성한 정규식이 아니라서 고치기 뭐했다.. (물론 못 고침)

 

그러면서 그냥 간지를 버렸다. 

시간도 촉박...

// 이메일 마스킹 처리
function emailSecurity(userEmail){
  var id = userEmail.split('@')[0];
  var mail = userEmail.split('@')[1];
  
  var maskingId = function(id){
    var splitId = id.substring(0,1);

    for(var i = 1; i < id.length; i++){
        splitId += '*';
    }
    return splitId;
  };

  var maskingMail = function(mail){
    var splitMail = '';

    for(var i = 1; i < mail.length; i++){
        splitMail += '*';
    }
    splitMail += mail.substring(mail.length-1,mail.length);
    return splitMail;
  };

  userEmail = maskingId(id) + '@' + maskingMail(mail);
  
  return userEmail;
}
 

 

최소사이즈 체크하여 최소사이즈보다 작으면 최소사이즈 값 삽입하기.

 

JS

var minimumSizeCheck = function(target,minNum){
  var regNumber = /^[0-9]*$/;
  var val = $(target).val();
  if( val < 700 || val == '' || !regNumber.test(val) ) $(target).val(minNum);
};

$('#width, #height').on('blur',function(){
  minimumSizeCheck('#width','700');
  minimumSizeCheck('#height','400');
});

 

 

 

jquery form.serialize(); 시 checkbox 값 ajax 전송되지 않는 이슈

왜 때문인지? form.serialize() 해서 파라미터 전송 한 거 보면 checkbox 값이 없음!

따로 작업해서 넣어줘야하는것을 알게되었음..

 

HTML

<form id="formId">
  <input id="checkboxId" name="checkboxName" type="checkbox" />
  <input type="text" />
</form>

 

JS

$.ajax({
  url: "url입력",
  dataType: 'json',
  data: form.serialize(),
  success: function (data) {
  	if(data.retcode === 100) alert('성공');
  }
});

 

피들러 확인해 보면 checkbox값이 전송되지 않는다는 것을 확인할 수 있다.
예외처리로 form 데이터를 만들어줘서 보내기!

 

JS

var $chk = $('#checkboxId');
var formData = $('#formId').serializeArray();

if(!$chk.is(':checked')){
  formData.push({
    name : $chk.attr('name'),
    value : false
  });	
}

 

 

 

 

기본 input attribute placeholder는......... ie9이하 안되더라..
그래서 span으로 꼼수를 부리고는 했었는데, 플러그인이 있어 간편하게 사용가능하다.
무려 하위브라우저 지원 가능.! (ie 애뮬레이터를 통해 ie5까지 되는 것 확인했다.(windows8.1 기준))
 
HTML
<input type="text" placeholder="이름을 입력해주세요.">

 

JS

<script type="text/javascript" src="/public/javascripts/jquery.min.js"></script>
<script type="text/javascript" src="/public/javascripts/lib/jquery.placeholder.min.js"></script>
<script>

  (function ($) {
      // 이런식으로 쓰면 된다.
      $('input, textarea').placeholder();
  })(jQuery);
  
</script>
 
자세한 것은! ↓↓↓↓↓

https://github.com/mathiasbynens/jquery-placeholder

 

+ Recent posts