336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

정규식 체크.


< Javascript >


1. 휴대폰 하이픈 넣기.

var hp = $('#od_hp').val().replace(/-/gi, "");

hp = hp.replace(/(^02.{0}|^01.{1}|[0-9]{3})([0-9]+)([0-9]{4})/,"$1-$2-$3");


2. 휴대폰 정규식 체크.

var hp_chk = /^\d{3}-\d{3,4}-\d{4}$/;

if(!hp_chk.test(hp)){

alert("잘못된 연락처입니다");

return;

}


< php >


1. 이메일 체크

preg_match("/([0-9a-zA-Z_-]+)@([0-9a-zA-Z_-]+)\.([0-9a-zA-Z_-]+)/", $mb_email)


2. 휴대폰 체크(hyphen 포함)

/^\d{3}-\d{3,4}-\d{4}$/


3. 휴대폰 하이픈 넣기

preg_replace("/(0(?:2|[0-9]{2}))([0-9]+)([0-9]{4}$)/", "\\1-\\2-\\3", $hp_no);

Posted by 당양부부34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

정규식 체크.


< php >


1. 이메일 체크

preg_match("/([0-9a-zA-Z_-]+)@([0-9a-zA-Z_-]+)\.([0-9a-zA-Z_-]+)/", $mb_email)


2. 휴대폰 체크(hyphen 포함)

/^\d{3}-\d{3,4}-\d{4}$/


3. 휴대폰 하이픈 넣기

preg_replace("/(0(?:2|[0-9]{2}))([0-9]+)([0-9]{4}$)/", "\\1-\\2-\\3", $hp_no);



< Javascript >


1. 휴대폰 하이픈 넣기.

var hp = $('#od_hp').val().replace(/-/gi, "");

hp = hp.replace(/(^02.{0}|^01.{1}|[0-9]{3})([0-9]+)([0-9]{4})/,"$1-$2-$3");


2. 휴대폰 정규식 체크.

var hp_chk = /^\d{3}-\d{3,4}-\d{4}$/;

if(!hp_chk.test(hp)){

alert("잘못된 연락처입니다");

return;

}



Posted by 당양부부34

2018. 3. 29. 15:40 IT/MySQL

mysql order by field

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

testbl 이라는 테이블이 있다.


mysql> select * from testbl;

+-----+------+------+--------+

| sid | ssid | sort | status |

+-----+------+------+--------+

|   1 | aa   |   23 | e      |

|   2 | aa   |   11 | e      |

|   3 | aa   |   33 | e      |

|   4 | aa   |   32 | e      |

|   5 | bb   |   23 | a      |

|   6 | bb   |   67 | c      |

|   7 | bb   |   34 | a      |

|   8 | bb   |   77 | d      |

|   9 | cc   |   11 | a      |

|  10 | cc   |   22 | a      |

|  11 | cc   |   32 | d      |

|  12 | cc   |   23 | c      |

+-----+------+------+--------+

12 rows in set (0.00 sec)


이 테이블로 몇가지를 해볼 참이다.

일단, 우리가 흔히 쓰는 order by 로 나온 결과를 정렬 할때, 일정한 순서가 아닌 임의로 정한 순서대로 보여주려면 아래와 같이 하면 된다.


mysql> select * from testbl where sid in (3,4,1)  order by field (sid, 3, 4, 1);

+-----+------+------+--------+

| sid | ssid | sort | status |

+-----+------+------+--------+

|   3 | aa   |   33 | e      |

|   4 | aa   |   32 | e      |

|   1 | aa   |   23 | e      |

+-----+------+------+--------+

3 rows in set (0.00 sec)


order by field ( 컬럼명, "순서1", "순서2", .... ) 와 같은 방법으로 원하는 순서를 직접 지정 할 수 있다.


하지만, 이렇게 원하는 순서대로 뽑아내려는 때는 보통... 기존에 있던건 그대로 보여주고 원하는 결과만 위로 보여줘야 할때가 대부분일 것이다.(필자는 그랬다.)

그럴땐 union을 쓰면 된다. 


mysql> (select * from testbl where sid in (3,4,1)  order by field (sid, 3, 4, 1))

union 

(select * from testbl where sid < 9 );

+-----+------+------+--------+

| sid | ssid | sort | status |

+-----+------+------+--------+

|   1 | aa   |   23 | e      |

|   3 | aa   |   33 | e      |

|   4 | aa   |   32 | e      |

|   2 | aa   |   11 | e      |

|   5 | bb   |   23 | a      |

|   6 | bb   |   67 | c      |

|   7 | bb   |   34 | a      |

|   8 | bb   |   77 | d      |

+-----+------+------+--------+

8 rows in set (0.00 sec)


위의 쿼리문에서 union으로 조금 더 뽑아 와봤다. 그런데... 정렬이 엉망이다. 위에서 order by를 썼는데도 먹혀 있지도 않다. 그 이유는 "UNION은 레코드 집합을 순서 없이 만들게 되기 때문에 최종 결과에서 레코드들이 어떻게 나타나야 하는지 순서에 관해 아무것도 암시 하지 않는다." 라는.. 한마디로 union으로 합치면 순서는 멋대로 정해진다 라는 거다.

그래서 이럴때는 뽑아온 대상에 대해서 정렬을 해줘야 한다.


mysql> (select * from testbl where sid in (3,4,1)) 

union 

(select * from testbl where sid < 9 ) 

order by field (sid, 3, 4, 1);

+-----+------+------+--------+

| sid | ssid | sort | status |

+-----+------+------+--------+

|   5 | bb   |   23 | a      |

|   2 | aa   |   11 | e      |

|   8 | bb   |   77 | d      |

|   7 | bb   |   34 | a      |

|   6 | bb   |   67 | c      |

|   3 | aa   |   33 | e      |

|   4 | aa   |   32 | e      |

|   1 | aa   |   23 | e      |

+-----+------+------+--------+

8 rows in set (0.00 sec)


위처럼 해놓으면 3, 4, 1로 정렬 된 것이 보일 것이다. 하지만, 여전히 부족하다. 나머지 순서들이 엉망인데다가, 필자는 3, 4, 1이 맨 위에서 뽑혀지길 원했기 때문이다.

이럴때는 아래와 같이 하면 된다.


mysql> (select * from testbl where sid in (3,4,1)) 

union 

(select * from testbl where sid < 9 ) 

order by field (sid, 1, 4, 3) desc, sid;

+-----+------+------+--------+

| sid | ssid | sort | status |

+-----+------+------+--------+

|   3 | aa   |   33 | e      |

|   4 | aa   |   32 | e      |

|   1 | aa   |   23 | e      |

|   2 | aa   |   11 | e      |

|   5 | bb   |   23 | a      |

|   6 | bb   |   67 | c      |

|   7 | bb   |   34 | a      |

|   8 | bb   |   77 | d      |

+-----+------+------+--------+

8 rows in set (0.00 sec)


유의할점은 desc로 뽑아주기 때문에 기존에 3,4,1로 해놓았던 순서를 1,4,3으로 해놓아야 원하는 결과물을 얻을 수 있다는 거다.


뭐.. 공지사항 같은거 처리할때 꾀 쓸만할꺼 같다..



출처 : http://b1ix.net/93

Posted by 당양부부34

2018. 3. 29. 12:55 IT/html_css

white-space 속성값.

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

white-space는 요소 안에 공백 처리에 대한 속성입니다.

white space란 여백이라고도 하는데 html에서는 공백 같은 것이지요.


< 속성값 >

normal : 기본값으로 공백을 여러개 넣어도 공백 1개만 표시됩니다. 글이 길어지면 텍스트가 자동 줄바꿈(wrap) 됩니다.

 

nowrap : 공백을 여러개 넣어도 1개만 표시, 텍스트가 길어도 줄바꿈 되지 않고 같은 줄에 계속 표시됩니다.


pre : 공백을 코드에 있는 그대로 표시함. <pre>와 같은 기능이지요. 코드에 줄바꿈이 없다면 자동 줄바꿈 되지 않습니다.


pre-wrap : 공백을 코드에 있는 그대로 표시함. 코드에 줄바꿈이 없어도 자동 줄바꿈 됩니다.


pre-line : 공백을 여러개 넣어도 1개만 표시. 코드에 줄바꿈이 없어도 자동 줄바꿈 됩니다.


감사합니다.




'IT > html_css' 카테고리의 다른 글

Image Map, 이미지맵.  (0) 2022.01.12
CSS로 한줄 자르기. 말줄임표.  (0) 2018.03.29
vertical-align 안먹을 때  (0) 2018.02.06
우클릭 막기. 드래그 막기.  (0) 2018.01.30
java json 크로스 도메인(Crossdomain) 우회하기.  (0) 2016.12.26
Posted by 당양부부34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

CSS로 한줄이 넘어가는 문자를 한줄로 줄일 수 있다.


한줄 뿐만 아니라 여러 줄로 설정도 가능하다.


1. 한줄로 내용 자르기.


  간단한 방법으로 overflow: hidden; 을 통해 한줄이 넘어가는 문자를 숨길 수 있다.

  뒤에 말줄임표를 추가하기 위해서는 text-overflow: ellipsis; 를 넣어주면 된다.



2. N줄로 내용 자르기.


text-align: left : 글자 정렬이 양쪽 정렬이면 말 줄임표가 숨겨질 수 있으니 좌측 정렬로 하여야 함.

word-wrap: break-word : 잘라버릴 글자를 단어 단위로 잘라줌.

display: -webkit-box : 여백 삽입과 같이 유연한 높이 증가를 위해 플렉스 박스형태로 변환.

-webkit-line-clamp: 3 : 보여줄 줄 수.

-webkit-box-orient: vertical : 플렉스 박스의 방향 설정.


저는 개발자이지만 유용한 정보라 포스팅 하였습니다.


감사합니다.





'IT > html_css' 카테고리의 다른 글

Image Map, 이미지맵.  (0) 2022.01.12
white-space 속성값.  (0) 2018.03.29
vertical-align 안먹을 때  (0) 2018.02.06
우클릭 막기. 드래그 막기.  (0) 2018.01.30
java json 크로스 도메인(Crossdomain) 우회하기.  (0) 2016.12.26
Posted by 당양부부34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

vertical-align 안먹을 때는


div, p, span 스타일에 display:table-cell을 주는 것이 핵심!!


하하.. 잘되네.

'IT > html_css' 카테고리의 다른 글

white-space 속성값.  (0) 2018.03.29
CSS로 한줄 자르기. 말줄임표.  (0) 2018.03.29
우클릭 막기. 드래그 막기.  (0) 2018.01.30
java json 크로스 도메인(Crossdomain) 우회하기.  (0) 2016.12.26
HTML5 Input Type: Number  (0) 2015.10.21
Posted by 당양부부34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

오늘은 브라우저 종료 이벤트에 대해 알아보자.


< s cript type="text/javascript" language="javascript"> 

         var flag_end = false;

         window.onbeforeunload = function() {

             if (!flag_end) {

                alert("browser terminating!");

flag_end = true;

             }

         }

< /s cript>

Posted by 당양부부34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

자바스크립트 함수 파라미터 디폴트 처리


PHP의 경우


function test($a = "", $b = 0) {


로 디폴트 처리 가능합니다.


자바스크립트의 경우

function test(a, b) {

   a = typeof a !== 'undefined' ? a : "";

   b = typeof b !== 'undefined' ? b : 0;


유용하네요.

'IT > jquery_javascript' 카테고리의 다른 글

javscript 정규식 체크  (0) 2018.04.11
브라우저 종료 이벤트.  (0) 2018.02.06
모바일 체크. 모바일 기종 체크. 브라우저 체크.  (0) 2017.07.12
PHP EUC-KR ajax 한글 깨짐 처리.  (0) 2016.05.30
iframe submit  (0) 2016.05.19
Posted by 당양부부34

2018. 1. 30. 16:59 IT/MySQL

MyISAM, InnoDB 비교

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

MySQL의 MyISAM과 InnoDB를 비교해 드립니다.

        
 

1. MyISAM

 

 MyISAM은 ISAM(Indexed Sequential Access Method) 의 단점을 보완하기 위해 나온 업그레이드 버젼으로, 이 엔진은 비-트랜젝션-세이프(non-transactional-safe) 테이블을 관리합니다.

       

MyISAM은 후에 소개하는 InnoDB에 비하여 별다른 기능이 없으므로 데이터 모델 디자인이 단순하다는 것이 장점입니다.

따라서 전체적으로 속도가 InnoDB 보다 빠릅니다. 특히 Select 작업 속도가 빠르므로 읽기 작업에 적합합니다!

Full-text 인덱싱이 가능하여 검색하고자 하는 내용에 대한 복합검색이 가능하답니다.

       

But! 그러나 데이터 무결성에 대한 보장이 되지 않습니다. MyISAM을 쓸 때의 무결성은 개발자나 DBA가 해야 합니다 ㅠ_ㅠ
또한 트랜잭션에 대한 지원이 없기 때문에 작업도중 문제가 생겨도 이미 작성된 내용들은 DB로 쏙 들어가버립니다.

가장 강조되는 단점으로는 Table-level Lock을 사용하기 때문에 쓰기 작업(INSERT, UPDATE) 속도가 느립니다.

변경을 많이 요하는 작업이라면 Table 단위의 Lock을 사용하는 MyISAM의 사용을 권하지 않습니다.

이렇게 기능이 없다니… 빠르기라도 해야겠네영!

       

따라서 MyISAM의 사용이 적합한 곳은 트랜잭션 처리가 불필요하며,

위에서 언급한 것 처럼 Select의 속도가 빠르므로 주로 조회작업이 많은 경우에 사용됩니다.

     

   

2. InnoDB

       

MyISAM과는 달리 InnoDB는 트랜잭션을 지원하므로 트랜잭션-세이프 스토리지 엔진에 해당됩니다.

Commit, Rollback, 장애복구, row-level locking, 외래키 등 다양한 기능을 지원합니다!

MyISAM의 부족했던 기능에 실망했던 사람들이라면 InnoDB로 갈아탔겠죠?

        

InnoDB의 장점을 살펴보면, 우선 데이터 무결성에 대한 보장이 됩니다.

제약조건, 외래 키의 생성이 가능하며, 동시성 제어가 가능합니다.

특히 MyISAM이 Table 단위의 Lock이었다면 InnoDB는 Row-level Lock (행 단위 Lock) 을 사용하기 때문에

변경 작업(INSERT, UPDATE, DELETE)에 대한 속도가 빠르다는 것이 큰 장점입니다.

       

그러나, 이렇게 여러가지 기능을 제공하다보니 InnoDB의 데이터 모델 디자인에는 많은 시간이 필요합니다.

또한 시스템 자원을 많이 사용한다는 단점 또한 가지고 있습니다. Full-text 인덱싱이 불가능하다는 것 역시 단점으로 보여집니다.

       

InnoDB의 경우는 트랜잭션 처리가 필요한 작업을 수행하며, 데이터 입력 및 수정과 같이 변경이 빈번한!

높은 퍼포먼스를 요구하는 대용량 사이트 등에서 효율적으로 사용될 수 있습니다.

       

        
이 두 종류의 DB를 함께 사용할 수 있을까요?

물론 함께 사용할 수는 있습니다. 하지만 백업 방법에 차이가 있어,

백업이 번거로워지고 Lock에 대한 Level이 다르기 때문에 사용에 문제가 생길 수 있다고 봅니다.


 

위의 내용을 표로 정리해봅시당

  

  

MyISAM

InnoDB

출시일자

더 먼저 출시됨 

이후에 출시 됨 

구조의 복잡성

지원하는 기능이 별로 없어서

구조가 단순하다.

  

외래키, 제약조건, 동시성 제어 등

다양한 기능 지원으로 구조가 복잡. 

기능 지원

Full-text 인덱싱 가능 

외래 키, 제약 조건, 동시성 제어,

트랜잭션 등에 대한 지원!

  

Lock의 단위

Table Level-Lock 

Row Level-Lock 

복구 능력

나쁨 

좋음 



출처 : http://ojava.tistory.com/25

Posted by 당양부부34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

마우스 우클릭 막기

oncontextmenu = "return false"


텍스트 블럭지정 막기

onselectstart = "return false"


마우스 드래그 막기

ondragstart = "return false"


< body oncontextmenu="return false" onselectstart="return false" ondragstart="return false" >

....

</body>



< div oncontextmenu="return false" onselectstart="return false" ondragstart="return false" >

....

</div>

'IT > html_css' 카테고리의 다른 글

CSS로 한줄 자르기. 말줄임표.  (0) 2018.03.29
vertical-align 안먹을 때  (0) 2018.02.06
java json 크로스 도메인(Crossdomain) 우회하기.  (0) 2016.12.26
HTML5 Input Type: Number  (0) 2015.10.21
모바일 Tag. accept, capture.  (0) 2015.06.16
Posted by 당양부부34

블로그 이미지
주요 토렌트를 블로깅하고 있습니다. 토렌트 순위 등은 다른 사이트를 찾아보세요. 주요 웹툰 순위도 게재했어요 경제를 좋아하는 일산의 행복한 프로그래머입니다.
당양부부34
Yesterday
Today
Total

달력

 « |  » 2024.4
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함