TIP게시판

제목 form validation 에서 한글 체크 규칙
글쓴이 sliplife 작성시각 2012/05/14 13:50:23
댓글 : 4 추천 : 0 스크랩 : 1 조회수 : 18871   RSS
여기 포럼이 있긴 하지만 CI 가 아직 한글과는 많이 친하지 못하네요.
제가 못 찾은 것일수도 있겠지만 좀 찾아보다 없어서 간단히 하나 만들었습니다.

form_validtion 라이브러리에서 alpha_dash 룰에 한글 조건을 첨가하였습니다.
콜백 함수를 쓰지 않고 라이브러리 형태로 만들었으니 기존 소스 코드에서 rule 명칭만 수정하면 될것 같습니다.
아. 그러고보니 메시지도 추가해야 겠군요.

비슷하게 응용해서 한글만 체크하는 rule 등을 만들어서 쓰면 될것 같습니다.



1.
application/libraries/ 아래에 MY_Form_validation.php 파일을 만듭니다.

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 
class MY_Form_validation extends CI_Form_validation {
 /*
  * 한글,영문,숫자,데쉬,언더바만 가능하게 한다. utf-8 기준.
  */
 public function korean_alpha_dash($str)
 {
  return ( preg_match('/[^\x{1100}-\x{11FF}\x{3130}-\x{318F}\x{AC00}-\x{D7AF}0-9a-zA-Z_-]/u',$str)) ? FALSE : TRUE;
 }
}
?>
 


2.
language/korean/ 에 form_validation_lang.php 파일에 한줄 추가한다.

$lang['korean_alpha_dash']  = "한글, 영문, 숫자, 밑줄, 대시만 포함할 수 있습니다.";
* 전 system/language/korean/ 에 있는 걸 수정하지 않고, application/language/korean/ 아래에 form_validation_lang.php 파일을 가져와서 수정하였습니다. 되도록이면 system/ 아래는 건들지 않을려구요.
* 당연히 langauge/ 아래에 korean/ 추가했으며 그 아래에 한글화된 form_validation_lang.php 파일을 씁니다. config 에서 언어 설정을 korean 으로 하구요.


3. 
기존 소스에 rule 을 적을때 korean_alpha_dash 를 쓰면 됩니다.

 $rules = array(
                     array(
                           'field'   => 'email', 
                           'label'   => 'lang:email', 
                           'rules'   => 'trim|required|valid_email|max_length[50]|is_unique[user.email]'
                        ),
                     array(
                           'field'   => 'nickname', 
                           'label'   => 'lang:nickname', 
                           'rules'   => 'trim|required|min_length[4]|max_length[20]|korean_alpha_dash|is_unique[user.nickname]'
                        )
                  );
  $this->form_validation->set_rules($rules);
 

 
 다음글 mysql 자동으로 timestamp 등록 sql (7)
 이전글 간단한 웹페이지 캐쉬처리 라이브러리 (스마티 캐쉬 형태... (3)

댓글

한대승(불의회상) / 2012/05/14 14:02:26 / 추천 0
좋은 정보 감사 합니다.

잘 사용하도록 하겠습니다.
변종원(웅파) / 2012/05/14 18:18:21 / 추천 0
좋은 팁 감사합니다. ^^
배강민 / 2012/05/15 11:04:41 / 추천 0
오호~ 국내에는 꼭 필요한거네요.

저도 쓰다보니 한글과는 좀 맞지않는 함수들이 보여서 재정의해서 쓰곤한..

word_censor 던가.. 욕 필터링할 수 있는..

이게 좀 한글과 안맞는게, 영어는 무조건 띄어쓰기가 있다보니 공백으로 뽀개서 비교를 하더군요..

"XX끼" 를 *** 등으로 바꿔버리고 싶은데 문장이 "야 이 XX끼야" 이면 못하더라고요.. 그래서 lensvil님이 함수 하나 만들어준... 

해당 함수는 저짝에 공개해둔 놈안에 있습니다.ㅋ MY_text_helper ㅋ
니삼 / 2012/08/09 19:19:13 / 추천 0
 좋은자료 감사합니다!