그냥 뭐..그렇게 맛있다까지는..동네 태릉 시장 근처 꼼장어 집임. ㅋ
꼼장어는 소소 메추리는 구울줄 모르나? 흠..글구 닭발은…싸다!!
위치(참곰장어닭발. 세븐일레븐 바로 옆에 있다. 지도에 안나와. -_- )
그냥 뭐..그렇게 맛있다까지는..동네 태릉 시장 근처 꼼장어 집임. ㅋ
꼼장어는 소소 메추리는 구울줄 모르나? 흠..글구 닭발은…싸다!!
위치(참곰장어닭발. 세븐일레븐 바로 옆에 있다. 지도에 안나와. -_- )
내 다시는.이런 좆같은 드라마 안본다.
남녀 시비 조장에 요새 시대에 말도 안되는 시어머니 그리고 그렇게까지 해줬는데 지 엄마한테 지랄을 해? 이런 미친 드라마를 봤나. 내가 이 드라마 내 주변에서 아무도 보기 싫을 정도로 말해줄께. 아니 이 바로 전 드라마도 개막장이지만 겨우 그 할머니때문에 봤구만 이건 포기할라고.
KBS 주말 바이바이. 어째 드라마 소개할때 남자 하나도 안나오더니 여자 애들만 나와서 회사 다니는것 뭐라고 하고 앉아있고 시어머니 병신 갑질 병신 찐따 남편 찐따 시아버지. 왜 이런건 여자가 해야하지? 라는 거지같은 발상으로 나오는 분위기. 잘 나가는 부장인데 갓 들어온 신입 남자애가 말도 안되는 태클 걸어?아 저래도 되냐? 미친 신입새끼 아니냐? 라는 편견 만들어. 신입 여자애는 말도 잘하드만. 그치? 분위기 깨는건 남자인거고 이걸 말리는건 여자인거고? 개같은 드라마를 다 봤네. 이럴꺼면 일일 드라마로 편성해 이 미친 KBS 야. 그 시간에 막장 다 하자나. 그런 드라마하고 다른게 뭐지? 출연진 몸값이냐? 왜 좀더 스토리가 탄탄한 막장이야? 아 시발 짜증나. 좆 같아서 다시는 안봐 시발 KBS야.
정말이지 이게 개삽질인지, 아니면 갑자기 되는 건지는 모르겠지만, 내 입장에서는 갑자기 된 것이 맞음.
자..일단 정리하면…
#maria10을 hyper backup으로 이전( DB 이전. 이게 없으면 이전의 의미가 없다. -_- )
#wordpress 내용을 sftp로 열심히 복사
#구 시놀에는 apache 2.2, 2.4, nginx가 설치되어 있었고, wordpress는 apache 2.x(뭔지 기억안남. )으로 되어 있었음.
#신 시놀에는 nginx가 기본으로 되어 있고, 이녀석이 가볍고 빠르다고들 하니, 건드리기 싫었음.
# 공유기 NAT 설정에서 신규 시놀로 변경 > 수정 완료
# 도메인 주소로 접속이 되지 않음!!!!( 삽질 시작.. )
# /wordpress를 붙이니 조낸 빠름. 아..그래.. nginx가 빠른건지, 새 시놀이 빠른건지 모르겠지만, 내 입장에서는 다른 앱을 사용해봤을 때, 그냥 새 시놀이 빠른거다.!
# 저 디렉토리 명을 없애려고 admin 페이지 접속 후, siteurl 에서 wordpress를 뺐다. > 어? 갑자기 왠 500?
# 기존의( 난 이사왔으니까 ) .htaccess 와 index.php를 web에다가 붙이란다.( 난 /volume1/web ) > 이거 하기 전에 고유 주소 업데이트 하라고 해서 했는데, 밑에 .htaccess 내용 업데이트하라고 되어 있음.
# 그 내용 복붙해서 web에다 붙여놓은 곳에 덮어쓰기
# index.php에서 경로를 /wordpress 추가한다.
# 그럼 모양은 web에도 wordpress에도 두개의 파일이 모두 존재함.
# 사이트 접속 > 500??????? > ie는 그냥 500, chrome은 DB가 established가 안됐단다. > 장난하냐? 좀전까지 되던 사이트인데?
# 검색 검색. 이것 저것 적용. 시팔. 403, 500 도돌이. 계속 개짜증. 한 8시간 했을 꺼다. 일단 포기….ㅠ
# 밤샘 작업 하는 날 모니터링 하면서 다시 시도.( 캘린더 가지고 놀다가 다 해봐서 )
# 어디선가 찾았다. wp-config.php( wordpress 설치 폴더에 있음. ) 에서 DB_HOST 내용을 localhost에서 localhost:/run/mysqld/mysqld10.sock 이걸로 바꾸란다.( 왜지? ) > 뭐 일단 뭐라도 바꿔보고 해야 하니까..해보자…
# DB에러가 안나고…다시 500에러가 난다….캬캬캬캬캬 진짜 죽여버려…캬캬캬캬캬
# wp-admin 에 다시 접속 > siteurl을 wordpress(어쨌든 써야해서 다시 붙여놨었음. )를 그냥 뺐다. > 여전히 500에러
# web에 붙였다가 없앤 .htaccess하고 index.php를 다시 wordpress에 있는 녀석을 복사
( 이때 상태는 .htaccess 에 /wordpress/ 가 붙어 있었음. )
# 상위에 있는 녀석을 모두 wordpress 뺐다. 혹시 몰라, wordpress에 있는 녀석도 뺐다.
# web에 있는 index.php 에는 다시 /wordpress 경로를 추가( wordpress 안에 있는 녀석은 그대로 )
# 참…중간에 자꾸 virtual host에 도메인 설정 – nginx,php7.0 으로 하라고 해서 그것도 했음.
— www를 안 붙이고 했더니, 다른 앱들도 다 안됨. www 붙였더니, 다른건 되는데, 다시 wordpress는 500,403 에러만 남. ( 난 pemalink는 시도도 못했다. 원래는 잘 쓰고 있었는데…ㅠ )
# 그래서 최종 상태는 .htaccess 2벌, index.php 2벌. siteurl은 wordpress 빠져있고, 고유 주소는 기본으로 했음.
# 접속 시도..갑자기 사이트가 빙빙돌기 시작한다. > ?????
# 퐈이야~~~~~~~~~~~~~~~~~~~~~!!!!!
아직도 왜 처음에 8시간동안 한건 안되고, 지금은 되는지 모르고 있음. 그때와 다른 건 localhost:/run/mysqld/mysqld10.sock 이것 뿐임. 정말 이것 때문이라고?
P.S
구 시놀에서는 maria5도 있었기 때문에 wordpress의 내용 중 가장 중요한 wordpress 계정이 거기에 있었다. 이게 없으면 아예 안됨. maria10에 해당 계정을 생성해야 하는데, 암호가 없는 걸로 생성해야 함. 근데 암호 안넣고 어케 생성하지??? 봤더니, local 뭐시기로 하고( global 아닌거 ) 하니, 생성이 되기는 하더라…-_- virtual host 처음 했을 때에는 phpmyadmin도 접속 안됐음. 혼자 좆됐다 빡친다 연신 중얼중얼. 아…
정리??????? 몰라…
고유주소고 뭐가 그냥 쓸란다…
혹시 이 글 보시는 분 있을 지 모르니, nginx 에서 고유주소 읽으려면 아래처럼 해야 함.( 이 nginx가 재시작하면 설정 값이 원상복구됨. 진짜 병맛임. )
location / {
try_files $uri $uri/ /index.php?$args;
} 추가
이렇게 해야 고유주소도 찾고 뭐..그렇단다. 근데, 다들 (wordpress 공식 내용도 ) siteurl을 바꾸면 404가 날꺼라는데, 난 난적이 있었나 싶네…ㅎ…칫..뿡…
############## 짜증나서 이미지는 없다. 뭘 어케 했는지도 잘 모르겠지만…^^ ##########
어디서 가져왔는데, 본인이 쓰신 것 같고…
문제되면 지울께요…^^
h, j, k, l – 좌,하,상,우 커서이동
i – 현재 커서 위치에 Insert 하기
I – 현재 줄 맨앞에 Insert 하기
a – 현재 커서 다음칸에 Insert 하기
A – 현재 줄 맨뒤에 Insert 하기
O – 윗줄에 Insert 하기
o – 아랫줄에 Insert 하기
w – 단어 첫글자로 이동하기
W – 화이트스페이스 단위로 다음 글자로 이동하기
b – 백워드 방향으로 단어의 첫글자로 이동하기
B- 백워드 방향으로 화이트스페이스 단위로 다음 글자로 이동하기
e – 단어의 마지막 글자로 이동하기
ge – 백워드 방향으로 단어의 마지막 글자로 이동하기
gg – 문서 맨 앞으로 이동
G – 문서 맨끝으로 이동
^ – 문장 맨 앞으로 이동
0 – 라인 맨 앞으로 이동
$ – 문장 맨 뒤로 이동
f문자 – 문자의 위치로 이동 ; 를 누르면 계속 이동
F문자 – 백워드로 문자의 위치로 이동
t문자 – 문자의 앞위치로 이동
T문자 – 백워드방향으로 문자의 앞위치로 이동
/단어 – 문서에서 단어 찾기 n이나 N으로 다음/이전 찾기
* – 현재 단어를 포워드 방향으로 찾기
# – 현재 단어를 백워드 방향으로 찾기
Ctrl + f – 다음 페이지 이동
Ctrl + b – 이전 페이지 이동
Ctrl + u – 페이지절반만큼 다음으로 이동
Ctrl + d – 페이지절반만큼 이전으로 이동
H – 현재 화면의 맨 위라인으로 이동
M – 현재 화면의 중간 라인으로 이동
L – 현재 화면의 마지막 라인으로 이동
]] – 포워드 방향으로 여는 컬리 블레이스( { )로 이동
[[ – 백워드 방향으로 여는 컬리 블레이스( { )로 이동
][ – 포워드 방향으로 닫는 컬리 블레이스( { )로 이동
[] – 백워드 방향으로 닫는 컬리 블레이스( { )로 이동
% – {}나 ()에서 현재 괄호의 짝으로 이동
dd – 현재 줄 잘라내기
dw – 단어 잘라내기
yy – 현재 줄 복사하기
p – 붙혀넣기
r – 현재 글자 교체하기
u – Undo
Ctrl + R : Redo
x – 현재 글자 지우기
X – 앞의 글자 지우기
> – 들여쓰기
< – 내어쓰기
. – 이전 명령어를 다시 실행
v – 비쥬얼모드(비쥬얼 모드에서 커서 이동해서 블럭지정 가능)
y – 복사하기
c – 잘라내기
cw – 단어 잘라내기
J – 다음 라인을 현재 줄의 끝으로 이어 붙힘
~ : 선택 문자 대소문자 변경
Ctrl + A : 숫자를 증가시키기
Ctrl + X : 숫자를 감소시키기
:w – 문서 저장하기
:q – 현재 문서 닫기
:q! – 저장하지 않고 닫기
:wq – 저장하고 닫기
:숫자 – 지정한 라인넘버로 이동
:new – 가로로 분할된 창 열기
:vs – 세로로 분할된 창 열기
Ctrl + w – 분할창 간에 이동하기
:tabnew – 새로운 탭 열기
:gt – 다음 탭으로 이동하기
:gT – 이전 탭으로 이동하기
:e ./ – 현재 탭에 오픈할 파일 탐색하기( ./ 는 현재위치에서 탐색 시작)
:colorscheme 스키마명 – VIM의 칼라스키마를 변경함(blue, desert, evening 등.. 스키마명에서 탭누르면 자동완성됨)
zc – 코드 접기(fold)
zo – 접힌 코드 펼치기
zd – fold 지우기
zR – 접힌 코드 모두 펼치기
zM – 코드 모두 접기
zD – 모든 fold 지우기
:buffers – 현재 Vim에서 여러 파일을 열었을때 버퍼에 있는 목록 확인
:buffer 숫자 – 버퍼 목록에 나온 숫자를 입력하면 해당 파일을 오픈함 ( :buffer 대신 :b 도 가능)
:bnext – 버퍼에 있는 다음 파일로 이동 ( :bn 도 가능)
:bprevious – 버퍼에 있는 이전 파일로 이동 ( :bp 도 가능)
:ball – 버퍼 목록에 있는 파일들이 가로로 분할된 창에 열림
일단…하루 반이나 고생했는데, 결국 apache로는 용을 써도 안되던게 nginx로 하니까 거짓말같이 바로 되버렸다…-_-
웹을 얼마나 찾았던지…ㅠ 정확하게 맞는 상황이 하나도 없고, 뭐 하나 해결하면 뭐 안되고…ㅋ
그래서 기록으로 남긴다. 다른 사람들도 피곤하지 않으려면 apache 버리고, nginx로..ㅋ
1. webstation 설치( 아마도 2.0?? )
2. 일반 설정
– 백앤드서비스 : nginx
– php 5.6
– 난 7.0도 있는데, 안해봤지만, 특별히 안될 건 없다고 봄…
– 개인 웹사이트 활성화 체크는 상관 없는 듯. 난 체크 되어 있고, 다른 웹에서는 체크하지 말라고 써 있으니.
3. php 설정
– open_basedir
: 만화책 경로 추가
blarblarblar > blarblarblar:/volume1/manga
: 난 이것 말고도 http가 aircomix 서버에 접근을 할 수 있어야 된다고 어느 웹에서 그러길래 내가 설치한 comix-server 경로도 추가( 구분자는 : )
/var/services/web/comix-server
: 참..확장자 중에 iconv랑 zip을 체크하라고 했다. 난 이미 되어 있어서 패쓰.
4. 다른 가상 호스트 설정은 내버려두었지만, 이제까지 apache에다가 하다가 실패했던 설정은 삭제했음.
5. 필요한 파일은 여기에서 받으시고..
근데 문제가 있다..위 파일은 DSM 5까지만 되게 되어 있더라..install.sh에 보면 그렇게 되어 있음..
위의 comix-server 설치 경로( 다르게들 하시던지.. )에 위에서 받은 파일들 모두( .sh 파일과 readme 파일 빼고 ) 복사~!
: 이런 일은 모두 synology를 ssh로 붙고 나서 sudo -i를 통해 root로 login 후 했음. 기본적으로 root 비번은 admin과 동일. 또한 DSM 6.x 는 처음부터 root로 접근 못함!!
: 사실 위에서 받았을 zip 파일은 apache 기준으로 되어 있기 때문에 conf 에 있는 httpd.conf-comix 파일의 내용이 중요한데, ngnix는 이거 필요 없는 듯.
: 대체 welcome.php는 언제 읽는거야..이씨…보이지도 않어. 무슨 generous god 이라고 되어 있는데..-_-
index.php 수정
$dir_name = “manga”;
echo $dir_name.”\n”;
handler.php 는 대부분 수정할 것이 없다. 소스도 좀 길다..
: 어느 웹에서 봤는데, 한글로 된 zip 파일이 열리지 않는 경우가 있다고 하더라. 이 때에는 handler.php 열면 #source_encoding = “EUC-KR” 로 되어 있는데, cp949로 바꾸니 잘 된다고..난 아직 잘된다…~!!! 예~
: 이 파일에는 가장 처음에 parent_path가 volume1로 되어 있을 텐데, manga의 상위 경로를 말하는 것 같다. 다른 곳이면 변경해 보시어라. 난 volume1 이었다.
6. 이제 nginx 설치된 곳으로 이동해서 conf 하나 만들어 준다.
: 난 nginx 경로가 /usr/local/etc/nginx/sites-enabled 였음.
: 만들 파일명은 다른 곳에서는 AirComix.conf 로 되어 있는데, 난 걍 aircomix.conf로 했다. 잘되는데?
아래는 그 안의 내용
##
# Basic Settings
# 1. copy to /usr/local/etc/nginx/sites-enabled
# 2. sudo nginx -s reload
##
server {
listen 31257;
server_name 192.168.291.30;
charset UTF-8;
root /var/services/web/comix-server;
location / {
autoindex on;
index index.php;
auth_basic "Restricted Access";
auth_basic_user_file /var/services/web/comix-server/.htpasswd;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/php56-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ ^/manga(.*)$ {
include fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm/php56-fpm.sock;
fastcgi_param SCRIPT_FILENAME /var/services/web/comix-server/handler.php;
}
}
: 아마 php7.0 으로 하려면 중간의 fpm.soc 이름이 70으로 되지 않을까 싶다. 안해보니 말을 못함.
7. 난 아무나 내 서버(아무도 안들어오긴 하겠지만, 혹시 모르니)에 들어와서 보는 것 별로 안 좋아한다.
: 6번 사항의 auth_basic, auth_basic_user_file 라인을 주석을 풀면 인증을 할 수 있다( 안할꺼면, #으로 주석처리 )
: 서버 경로에 .htaccess 파일 생성( vi로 하면 됨. 아니면 touch 하시던지..어차피 vi해야 하지만.. )
AuthType basic
AuthName AirComix
AuthuserFile /var/services/web/comix-server/.htpasswd
AuthGroupFile /dev/null
require valid-user
: .htpasswd 파일도 생성( 이건 vi 하지 마라. )
htpasswd -cb .htpasswd AirComix 비밀번호
: 어느 웹사이트에서 보니까, 비밀번호에 문자 넣으면 안된다고 하는데, 거기는 생성이 -c 였음. 난 -cb로 하니까 잘됨.
: aircomix 앱(ios, 난 안드로이드에는 안깔아서 앱 뭔지 모름) 에서 서버 설정할 때, 비밀번호만 적게 되어 있음. 고로 계정은 반드시 AirComix로 생성해야 함..-_-; 병맛임.
8. 권한 작업을 추가해야 한다.
: 관리 사이트 들어가서 공유폴더 > manga(본인이름) > 권한 > 로컬그룹( 기본적으로 로컬사용자로 되어 있다. 상단의 dropdownlist에서 로컬사용자로 변경 ) > http, users 읽기 권한 체크 > 저장
: 다른 건 안 바꿨음.
9. nginx 재시작
: sudo nginx -s reload
10. 웹에서 잘 접속되는지 확인( 우선 확인 )
: 도메인:31257 로 접속 시도했는데, 아뒤/비번 넣으라고 뜨면 잘 되는것임.
: 난 로그인했더니, manga라고 글자 나오고 말음. 장난해? welcome 어디갔어..-_-
11. aircomix 앱 실행
존나 잘된다.!
안되는 사람은…저도 몰라요…ㅠ..ㅋ…!
https://www.microsoft.com/en-us/software-download/windows10
걍 여기가서 update now 버튼 누르면 뭐 받아진다….
실행시켜…
그럼 다운로드 받는다..
그 다음은 아직 모르겠네….ㅋㅋ 되겠지 뭐…ㅋ
일단 찾은 주소는 있는데…집에가서 더 해보고…쩝..
https://stackoverflow.com/questions/42444457/lombok-does-not-work-for-eclipse-neon
되면 좋고…아니면…
# build path에서 installed > alternative 쪽으로 변경
# compiler 체크 해제 된 것 아래쪽에서 버전 똑같이..
# facet 에서 역시 버전 똑같이 체크…
이래도 안되면…걍 다른 곳에서…;;;;;
server를 추가했다가 계속 apache 폴더에 권한이 없다고 나오길래( admin이 admin 폴더를 쓰는데 권한이 없단다… )
좀 찾아봤더니, 아래처럼 하면 되더라.
1. 이클립스를 닫는다.
2. {workspace-directory}/.metadata/.plugins/org.eclipse.core.runtime/.settings 폴더로 이동
3. org.eclipse.wst.server.core.prefs, org.eclipse.jst.server.tomcat.core.prefs 파일 삭제
4. 이클립스 재실행
문제 되면 지우겠음..
출처: http://l2j.co.kr/2675 [L2J with DuraBoys]
function fn_hangulChk(obj) {
var val = obj.value;
var pattern = /[^가-힣ㄱ-ㅎㅏ-ㅣa-zA-Z0-9]/gi;
// 특수문자 체크
// 한글도 제거하고 싶다면 가-힣ㄱ-ㅎㅏ-ㅣ 조건 제거.. 이런 형태로 원하는 것 체크
if (pattern.test(val)) {
obj.value = val.replace(pattern, “”);
}
}
———————————————————————-
참고..
* 출처 : http://cheolgoon.tistory.com/162
* 출처 :http://egloos.zum.com/xxwony/v/74767
* 출처 :http://nalpari.blogspot.kr/2014/12/blog-post_29.html
* 출처 :http://egloos.zum.com/rucaus/v/2405770
모든 공백 체크 정규식
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”;
}