본문 바로가기

정규표현식

(4)
Javascript 정규표현식 - n번째 글자만 '*'로 치환할 때 보통 이름이나 전화번호 같은 개인정보를 이렇게 처리한다. '홍길동'이 실제 데이터이면 '홍*동' 같은 식으로 보여주는 것이다. 서버에서 처리해야 하는 것이 당연하지만, 경우에 따라 프론트에서 처리해도 무방한 데이터도 있다. 그럴때는 이렇게 변환해주면 된다. n번째 문자만 치환하는 콛 아래 코드는 3자리 이상 문자열일 때, 2번째 문자만 '*'로 변환하는 예제이다. 코드를 잘 살펴보면 응용해서 사용할 수 있을 것이다. const replaceSecondChar = (str) => { return str.length >= 3 ? str.replace(/(? { return str.length >= 4 ? str.replace(/(?
정규식 - XSS방지 EL에서 JSTL <c:out escapeXml="true"/> 변환 꿀팁 XSS 방지를 위해 필터가 사용하지만, 이런저런 사연으로 EL을 JSTL c:out으로 변경하라는 요청이 왔다. 하나씩 찾아 바꾸기에는 너무 노동집약적인 작업이라 다음과 같이 정규식을 사용하였다. 찾을 값 (정규식 사용!) (\$\{.+?\})변경할 값 ${title} 같은 값이 로 바뀐다.
아이디, 패스워드 패턴 검사는 정규식으로 하자 레거시 소스 분석 중 이런 것을 보았다. var alphaDigit = "abcdefghijklmnopqrstuvwxyz1234567890"; for (i=0; i < userId.length; i++) { if (alphaDigit.indexOf(userId.substring(i, i+1)) < 0) { alert("아이디는 영문소문자와 숫자의 조합만 사용할 수 있습니다."); return false; } } 여기 뿐만 아니라 여기저기에 코딩 초보의 티가 많이 나는 소스이다. 문자열 패턴 검사에는 정규식이라는 좋은 것이 있다. 정규표현식 혹은 정규식이라고 검색하면 많이 나온다. 정규식을 사용하면 위 코드를 아래처럼 바꿀 수 있다. if (!/^[a-z0-9]{4,10}$/gi.test(userId)) ..
게시판 내용에서 HTML 태그 제외하고 검색하기 요약: 정규식으로 HTML 태그를 삭제하고 검색한다. 사용자의 눈으로 게시판 글 등록 시 위지윅 HTML 에디터 (summernote, CK Editor, 네이버 스마트에디터 등)를 사용해서 글을 등록하면 (당연하게도)HTML이 함께 저장된다. 에디터에 따라 내용도 함께 저장되는 경우도 있다. 개발자가 보기에는 너무나 당연하지만, 사용자가 보기에는 내용에 안보이는 것이 검색되면 오류라고 생각한다. 예를 들어 line_friends.png를 에디터의 이미지 첨부했다. 저장된 콘텐츠는 다음과 같다. 라인 캐릭터 졸귀탱! friend라는 단어로 검색했다. 사용자가 보기에는 라인 캐릭터 졸귀탱! 밖에 안 보이는데 해당 게시물이 검색된다. 태그 지우고 텍스트 내용만 보기 HTML을 제외하고 게시물을 보기 위해 정..