@SuppressWarnings("unchecked")

public static List<Map<String, Object>> jsonArrStrToList(String jsonArrString) {

/** Local Value Object */

ObjectMapper mapper = null;

List<Map<String, Object>> bizList = null;


/** Business Logic */

//예외처리

if(isEmpty(jsonArrString)){

return null;

}

// Jackson Mapper 선언

   mapper = new ObjectMapper();


//JSONArrayString을 List로 변환

   try {

bizList = mapper.readValue(jsonArrString, List.class);

} catch (JsonParseException e) {

LOGGER.error(String.format(LogFormat.ERROR, e));

} catch (JsonMappingException e) {

LOGGER.error(String.format(LogFormat.ERROR, e));

} catch (IOException e) {

LOGGER.error(String.format(LogFormat.ERROR, e));

}


/** Return Logic*/

return bizList;

}

블로그 이미지

왕왕왕왕

,

$.ajax({

url : "url써주기",

type : "POST",

contentType : "application/x-www-form-urlencoded; charset=UTF-8",

data : $("#폼아이디").serialize(),

dataType : "json",

success : function(response) {

if (response != null) {

if (response.status != 'error') {

alert("저장 되었습니다.");

var form = document

.getElementById('폼아이디');

form.action = "url써주기";

form.submit();

}


else {

alert(response.message);

}

}

},

error : function(request, status, erreo) {

         alert(request.reponseText);

}

});

블로그 이미지

왕왕왕왕

,

$('img[src*="btn_cancel"]').click(function(){

$('#폼아이디')[0].reset();

//취소 완료 메시지 표시

alert("변경된 정보가 초기화 되었습니다.");

});

블로그 이미지

왕왕왕왕

,

function fn_autoNextFocus() {

   $("input").keyup (function () {

       var charLimit = $(this).attr("maxlength");

       if (this.value.length >= charLimit) {

           $(this).next("input").focus();

           return false;

       }

   })

};

'JAVA > Jquery' 카테고리의 다른 글

jquery ajax 기본형태  (0) 2016.12.08
jquery 취소이벤트에 의한 폼초기화  (0) 2016.12.08
Jquery 입력한 날짜 월별 일수 및 날짜포맷확인  (0) 2016.11.25
Jquery 정규식 예제  (0) 2016.11.24
jqeury iframe ready state check  (0) 2016.10.24
블로그 이미지

왕왕왕왕

,

파라미터넘어가고  컨트롤러에서 model.addAttribute("searchInfo", param);

검색조건을 다시 넘겨준다


<c:forEach items="${searchInfo}" var="entry">

//KING_로 시작하는 파라미터들을 다시 담는다.

//그냥 넘어온 파라미터전체를 돌려서 그중에 KING_로시작하는 파라미터가있으면 input태그를 만들면서 그값을을 가지고있게하고 다음 페이지에서 가져갈수있도록해준다.

<c:if test="${fn:startsWith(entry.key,'KING_ ')}" >

<input type="hidden" id="${entry.key}" name="${entry.key}" value="

<c:out value="${entry.value}" escapeXml="true"/>" />

</c:if>

</c:forEach>

'JAVA > JSP' 카테고리의 다른 글

JsTl 체크박스 체크 조건문  (0) 2016.09.08
jsp 차단된 콘텐츠 허용 코드  (0) 2016.08.29
JSP Thumnail 처리  (0) 2015.08.25
JSP jai 라이브러리 다운 및 추가  (0) 2015.08.25
JSP Thumbnail 폼  (0) 2015.08.25
블로그 이미지

왕왕왕왕

,

@RequestMapping(value="/find/host.do")

//최초 호출 메소드

public String hostMethod(HttpServletRequest request, Model model){


subDirList(경로); 

   

return "find.host";

}


// 최초경로에 있는 디렉토리에 있는 파일을 읽어 해당 각 파일별 문자열중복이 있는지 체크

public void subDirList(String source){

File dir = new File(source); 

File[] fileList = dir.listFiles(); 

try{

for(int i = 0 ; i < fileList.length ; i++){

File file = fileList[i]; 

if(file.isFile()){

    // 파일이 있다면 파일 이름 출력

System.out.println("\t 파일 이름 = " + file.getName()+" /t 파일 전체경로 = "+file.getPath());

overlapChk("id=",file.getPath()," /t 파일 전체경로 = "+file.getPath(),"디렉토리 이름 = " + file.getName());

}else if(file.isDirectory()){

System.out.println("디렉토리 이름 = " + file.getName());

    // 서브디렉토리가 존재하면 재귀적 방법으로 다시 탐색

subDirList(file.getCanonicalPath().toString()); 

}

}

}catch(IOException e){

}

}


페이지별 아이디 중복체크(정규식으로 아이디 말고도 다른거찾을수도)

public void overlapChk(String ovStr,String fileNm,String allPath, String directNm){

System.out.println("오버랩 시작  ");

        String[] search = new String[2];

        TreeSet<String> overlapList = new TreeSet<String>();

        

        search[0] = ovStr;                          // 'GV_' 단어를 가지고 있는 모든 열을 검색한다.

        search[1] =fileNm;        // 검색할 *.txt 파일의 파일명(확장자까지 같이 적어줘야 한다.)


        // (?i) <- "찾을 문자열"에 대소문자 구분을 없애고

        // .*   <- 문자열이 행의 어디에 있든지 찾을 수 있게

        String findStr = "(?i).*" + search[0] + ".*";

        // int lineNumber = 1;    // 행 번호


        try {

            

            BufferedReader buffer = new BufferedReader(new FileReader(search[1]));

            String low = null;

            String regexStr =".*(id=\")[a-zA-Z_-]+(\").*";

            

        List<String> overlist = new ArrayList<String>();

            while ((low = buffer.readLine()) != null) {

             File f = new File("C:\\Users\\king\\Desktop\\regext.txt");

             FileWriter fw =new FileWriter(f,true);

//             System.out.println("readline "+low +"   매칭결과" + low.matches(regexStr));              

            if(low.matches(regexStr)){

            Pattern pt = Pattern.compile(" (id)=\"[a-zA-Z-_]+\"");

            Matcher mt = pt.matcher(low);

            while(mt.find()){

            if(!overlist.contains(mt.group())){

            if(mt.group().replace(" ","").equals("id=\"whspg\""))

            System.out.println("중복안됨 "+ mt.group()+ " " +overlist.contains(mt.group())+ " "+overlist.toString());

            fw.write("중복안됨 "+ mt.group()+ " "+allPath+" "+directNm+"\n");

            overlist.add(mt.group());

            }else{

            System.out.println("아이디 중복 "+ mt.group());

            fw.write("아이디 중복  "+ mt.group()+ " "+allPath+" "+directNm +"\n");

           

            }

}

            }

        fw.write("\n");

            fw.flush();

            fw.close();

          } 

          

        } catch (IOException e) {

            System.err.println(e); // 에러가 있다면 메시지 출력

            System.exit(1);

        } catch (PatternSyntaxException e) { // 정규식에 에러가 있다면

            System.err.println(e);

            System.exit(1);

        }

}

'JAVA > 자바' 카테고리의 다른 글

JAVA poi 엑셀 파일쓰기  (0) 2019.01.06
자바 JSON스트링 리스트로 변환  (0) 2016.12.08
자바 웹 다운로드  (0) 2016.10.20
자바 bufferedimage to byte[] convert  (0) 2016.10.19
자바 현재날짜뽑기  (0) 2016.10.14
블로그 이미지

왕왕왕왕

,

   //날짜 월별 max 일 확인

    var fieldObj = new Array();

    var dayValid;

    var equalDate;

    var dataValidate;

    var bol;

    //날짜검사할 id에 # 빼고 나머지만 추가

    fieldObj.push("restreginumFront");

    fieldObj.push("superMngEduFinishd");

    fieldObj.push("superMngDsvYmd");

    

    $.each(fieldObj,function(index,val){

      dataValidate =  $("#"+fieldObj[index]).val().split("-");

      

      var dateArr = new Array();

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

   

    if(i != 2){

        dateArr.push(dataValidate[i]);

    }else{

    dayValid = dataValidate[i];

    }

    }

        //month 는 0 부터 시작해서..

       equalDate = 32 - new Date(dateArr[0], dateArr[1]-1, 32).getDate();

   if(equalDate <dayValid){

    alert( $("label[for='"+fieldObj[index]+"'").text()+"에 날짜는 "+dateArr[0]+"년"+dateArr[1]+"월은"+equalDate+"일까지 입니다.");

    $("#"+fieldObj[index]).focus();

    bol = false;

   }

   //each탈출

   if(!bol){

    return bol;

   }

    });

    //함수탈출

    if(!bol){

    return 

    }




날짜포맷 


  var yymd = /[12][0-9]{3}-[01][0-9]-[0-3][0-9]/;


 if(!yymd.test($("#아이디").val()))

블로그 이미지

왕왕왕왕

,

Jquery 정규식 예제

JAVA/Jquery 2016. 11. 24. 18:13

출처:http://letusgo.tistory.com/30


모든 공백 체크 정규식
var regExp = /\s/g;

 

숫자만 체크 정규식
var regExp = /^[0-9]+$/;


이메일 체크 정규식
var regExp = /^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i;


핸드폰번호 정규식
var regExp = /^\d{3}-\d{3,4}-\d{4}$/;


일반 전화번호 정규식
var regExp = /^\d{2,3}-\d{3,4}-\d{4}$/;


아이디나 비밀번호 정규식 
var regExp = /^[a-z0-9_]{4,20}$/;


휴대폰번호 체크 정규식 
var regExp = /^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$/;

 

##############  정규표현식

1. 확장문자 (: backslash)
    - s : 공백 문자(스페이스, 탭, 폼 피드, 라인 피드)
 
    - b : 단어의 경계
    - B 이를 제외한 모든 문자 매칭
 
    - d : 숫자
    - D : 숫자가 아닌 문자 [^0-9] 와 동일
 
    - w : 알파벳, 숫자로 된 문자, 밑줄 기호(_) [A-Za-z0-9]
    - W : w의 반대 문자 [^A-Za-z0-9]
 
    - 특수문자 : 특수문자 자체를 의미 예) + (+ 기호 자체)
 
2. 특수문자
    - * : 0회 이상 반복
    - + : 1회 이상 반복
    - ? : 0 또는 1개의 문자 매칭
    - . : 정확히 1개 문자 매칭
 
3. 플래그
    - g : 전역매칭
    - i : 대소문자 무시
    - m : 여러 줄 매칭
 
4. 기타
    - () : 괄호로 묶인 패턴은 매칭된 다음, 그 부분을 기억한다.
    - $1,...,$9 : 괄호로 갭처한 부분 문자열이 저장 됨.
    - | : ~또는~
    - {} : 반복 횟수


##############  간단한 정규 표현식
var re = /a/         --a 가 있는 문자열
var re = /a/i        --a 가 있는 문자열, 대소문자 구분 안함
var re = /apple/    -- apple가 있는 문자열
var re = /[a-z]/    -- a~z 사이의 모든 문자
var re = /[a-zA-Z0-9]/    -- a~z, A~Z 0~9 사이의 모든 문자
var re = /[a-z]|[0-9]/  -- a~z 혹은 0~9사이의 문자
var re = /a|b|c/   --  a 혹은 b 혹은 c인 문자
var re = /[^a-z]/  -- a~z까지의 문자가 아닌 문자("^" 부정)
var re = /^[a-z]/  -- 문자의 처음이 a~z로 시작되는 문장
var re = /[a-z]$/  -- 문자가 a~z로 끝남


상기에 정의된 간단한 표현식을 아래에 넣어 직접 해 보시기 바랍니다.
var str = "sample string";
re.test(str)?"true":"false";

* 특수문자('''', ''^'', ''$'', ''*'', ''+'', ''?'', ''.'', ''('', '')'', ''|'', ''{'', ''}'', ''['', '']'')를 검색할 경우는 '''' 를 넣는다.

 

##############  간단한 응용예제
 
 
var re = /s$/;          -- 공백체크
var re = /^ss*$/;   -- 공백문자 개행문자만 입력 거절
var re = /^[-!#$%& amp;'*+./0-9=?A-Z^_a-z{|}~]+@[-!#$%&'*+/0-9=?A-Z^_a-z{|}~]+.[-!#$%& amp;'*+./0-9=?A-Z^_a-z{|}~]+$/; --이메일 체크
var re = /^[A-Za-z0-9]{4,10}$/ -- 비밀번호,아이디체크 영문,숫자만허용, 4~10자리
var re = new RegExp("(http|https|ftp|telnet|news|irc)://([-/.a-zA-Z0-9_~#%$?&=:200-377()]+)","gi") -- 홈페이지 체크

var re = "<[^<|>]*>";  -- 태그제거 
var re = /[<][^>]*[>]/gi;-- 태그제거 
str = str.replace(RegExpTag,""); 

var RegExpJS = "<script[^>]*>(.*?)</script>";  -- 스크립트 제거  
str = str.replace(RegExpJS,""); 

var RegExpCSS = "<style[^>]*>(.*?)";  -- 스타일 제거  
str = str.replace(RegExpCSS,""); 

var RegExpHG = "(/[ㄱ-ㅎ|ㅏ-ㅣ|가-힣]/)";  -- 한글 제거  
str = str.replace(RegExpHG,"");  
 
var RegExpDS = /<!--[^>](.*?)-->/g;   -- 주석 제거  
str6 = str.replace(RegExpDS,""); 

var regExp = /[a-z0-9]{2,}@[a-z0-9-]{2,}.[a-z0-9]{2,}/i; --이메일 체크


## 기타 응용
re = new RegExp("^@[a-zA-Z0-9]+s+","i");//문장의 처음이 @이고 문자가 1나 이상 있으면 ok

 

기타 상기와 동일하나 약간씩 다른 샘픔
영숫자 조합책크
if ((new RegExp(/[^a-z|^0-9]/gi)).test(frm.loginid.value)) {
    alert("ID는 영숫자 조합만 사용하세요"); 
    frm.loginid.focus(); 
}

홈페이지 주소 책크
 function chk(v){
  str='';
  re = new RegExp("^http://","i");  
  re.test(v)?str='y':str='n';
  alert(str);
 }

hanmail인지를 책크
 function chk(v){
  str='';
  re = new RegExp("hanmail.net","i");  
  re.test(v)?str=true:str=false;
  return str
 }

//본문내에서 도메인 구하기
var patt = /(http(s)?://)?w+(.w+)+/gi;
      var result = (aa.value.match(patt));

//본문내에서 url구하기
상기와 유사 var patt = /(http(s)?://)?w+(.w+).S*-gi;

########### 정규식 메소드 및 사용법

참조 http://eknote.tistory.com/1251
참조 http://www.javascriptkit.com/javatutors/redev3.shtml
RegExp.exec(string)
RegExp.test(string)
String.match(pattern)
String.search(pattern)
String.replace(pattern,string)
String.split(pattern)

 

 

 

 

 

 

 

* 특수문자 검증 및 제거

function regExp(){  
 //특수문자 검증 start
 var str = "2011-12-27";
 var regExp = /[\{\}\[\]\/?.,;:|\)*~`!^\-_+<>@\#$%&\\\=\(\'\"]/gi
 if(regExp.test(str)){
  //특수문자 제거
  var t = str.replace(regExp, "")
  alert("특수문자를 제거했습니다. ==>" + t)
 }else{
  alert("정상적인 문자입니다. ==>" + str)
 }
 //특수문자 검증 end
}

 

 

* 닉네임 체크 - 특문 제외 2자 ~ 20자

var pattern = /^[\w\Wㄱ-ㅎㅏ-ㅣ가-힣]{2,20}$/;

[\w]는 [A-Za-z0-9_] 이다
[\W]는 \w를 제외한 특수문자들이다.
[ㄱ-ㅎ] 은  ㄱㄴㄷㄹㅁㅂㅅㅇㅈㅊㅋㅌㅍㅎ
[ㅏ-ㅣ]는 ㅏㅑㅓㅕㅗㅛㅜㅠㅡㅣ
[가-힣]는 가나다라~~타파하 ~ 기니디리~ 티피히 ~ 각낙닥락 ~ 틱픽힉 ~ 깋닣딯맇 ~ 팋핗힣  이 된다.


즉 그냥 모든 문자열에 대한 {2,20} 글자 수 체크가 된다.

 

 

 

 

 

 

 

 

****

 

var pattern = 정규식;
var testee = "테스트 스트링";
var true_or_false = pattern.test( testee);  // 정규식 필터를 통과하면 true, 아니면 false 리턴.

다른 방법들도 있는데 나는 그냥 위와 같이 사용중이다.
아래는 내가 사용하는 정규식 몇 가지 예제..

1) 정수와 소수점 달고다니는 수들만 통과시키는 필터. 예를 들어 '12' '12.123' '-0.571' '-8100' 등에 대해 true를 리턴하고 나머지는 false 리턴.
 
var pattern =  /^[-]?\d+(?:[.]\d+)?$/;
return pattern.test( testee);

1-2) 위의 필터에서 좀더 조건을 추가해서, 양수면서 최대 소수점 2자리 이하까지만 통과시키는 필터. 예를 들어 12.23, 0.41, 51 등에는 true를 리턴하고, -12, -9.43, 1.234 등에는 false를 리턴하는 필터.
var pattern = /^\d+(?:[.]?[\d]?[\d])?$/;
return pattern.test( testee);

2) 숫자 및 x, X, P, E 만 포함한 스트링만 통과시키는 필터. 
예를 들어, 
x123 : true
XPE : true
125 : true
1234O : false
pXP : false

var pattern = /[^1234567890xXPE]/;
return !(pattern.test( testee));

3) 문자 전체에서 특수문자를 하나라도 포함하지 않아야만 함
예를 들어, 
@123 : false
12Hello5 : true
!!! : false

var pattern = /[^\w\s]/i;
return !(pattern.test( testee));

4) 다음과 같은 형식만 통과함. Q로 시작하면서, 0000~9999 까지의 숫자만 Q 뒤에 달고 있어야 함. 
즉, 
Q0001, Q0002, Q1234, Q9999  : true
Q00, Q194, Q1  : false
Q0001A  : false
QUESTION : false

var pattern = /^Q[0-9][0-9][0-9][0-9]$/;
return pattern.test( testee);


5) 정규식에서 g 플래그를 쓸 때 주의해야 한다. 최근에 매칭한 곳에서부터 다시 정규식 검사를 시작하는 속성이 있다.

이것때문에 다음 문제가 일어난다. 연속적으로 한 스트링에 대해 정규식 테스팅을 하면, 처음에는 필터가 잘 동작하다가 나중에는 통과하지 말아야 할 조건을 가진 스트링이 정규식 패턴을 통과했다고 나오게 된다. 구글에서 'regex g flag consecutive' 등으로 검색하면 이 문제로 매우 많은 질문과 답이 나온다. 해결 방법은.. 난 g 플래그 대신 i 플래그를 줘서 해결했다. 아래 링크도 도움이 될 것이다.

http://stackoverflow.com/questions/15610251/why-pattern-testname-opposite-results-on-consecutive-calls
http://stackoverflow.com/questions/6739136/consecutive-calls-to-regexp-test-fail-for-pattern-with-global-option


6) 문자열 양 끝에 공백문자를 없애 주는 정규식. 예를 들어 "   hi hello! "; 를 "hi hello!"; 로 바꿔 주는 코드.
(출처 : http://stackoverflow.com/questions/3000649/trim-spaces-from-start-and-end-of-string)

function trim_whitespace( str) 
{
    return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}


7) "[192.244.1.123]" 같은 string에서 안의 ip부분만 빼낸다("192.244.1.123" 을 빼내는 작업)
function main()
{
    var regex = /\[([.\d]+)]/;
    var str = "[192.244.1.123]";
    var res = regex.exec( str);
    
    // print res[1] = "192.244.1.123";
}

 

 

 

// 정규식 휴대폰 번호 마스킹

** 출처 : http://ironnip.tistory.com/15

 

- num  : '-' 문자가 들어있지않은 숫자로된 전화번호

- type : 0 을 보내면 가운데 자리 마스킹

 

function phoneFomatter(num,type){

    

    var formatNum = '';

    

    if(num.length==11){

        if(type==0){

            formatNum = num.replace(/(\d{3})(\d{4})(\d{4})/, '$1-****-$3');

        }else{

            formatNum = num.replace(/(\d{3})(\d{4})(\d{4})/, '$1-$2-$3');

        }

    }else if(num.length==8){

        formatNum = num.replace(/(\d{4})(\d{4})/, '$1-$2');

    }else{

        if(num.indexOf('02')==0){

            if(type==0){

                formatNum = num.replace(/(\d{2})(\d{4})(\d{4})/, '$1-****-$3');

            }else{

                formatNum = num.replace(/(\d{2})(\d{4})(\d{4})/, '$1-$2-$3');

            }

        }else{

            if(type==0){

                formatNum = num.replace(/(\d{3})(\d{3})(\d{4})/, '$1-***-$3');

            }else{

                formatNum = num.replace(/(\d{3})(\d{3})(\d{4})/, '$1-$2-$3');

            }

        }

    }

    return formatNum;

    

}

 

 

phoneFomatter('01000000000');   //010-0000-0000

phoneFomatter('01000000000',0); //010-****-0000

phoneFomatter('0100000000');    //010-000-0000

phoneFomatter('0100000000',0);  //010-***-0000

phoneFomatter('0200000000');    //02-0000-0000

phoneFomatter('0200000000',0);  //02-****-0000

phoneFomatter('0310000000');    //031-000-0000

phoneFomatter('0310000000',0);  //031-***-0000

phoneFomatter('16880000');      //1688-0000

블로그 이미지

왕왕왕왕

,