회원가입시

회원가입시

QA

회원가입시

본문

닉네임을

한글로 할때 6자 내외

영문으로 할때 8자 내외로 할려면 어떻게 하나요? 

이 질문에 댓글 쓰기 :

답변 2


<?
$str = $_GET['nick'];
$str_com = preg_match("/[\xA1-\xFE][\xA1-\xFE]/", $str);
$len = mb_strlen($str, "UTF-8");
if($str_com == 1) {
   if($len > 6) {
      echo "한글은 여섯 자까지만";
   }
} else {
   if($len > 8) {
      echo "영문은 여덟 자까지만";
   }
}
?>
<form>
   <input type="text" name="nick" id="nick" value="<?=$str?>" />
   <input type="submit" value="submit" />
</form>

이렇게 하시면 되지 않을까요? 

$kor = "테스트테스트테스트";
echo mb_strimwidth($kor, 0, 6, "", "UTF-8"); // 테스트

$eng = "testtesttest";
echo mb_strimwidth($eng, 0, 6, "", "UTF-8"); // testte

이거 응용해서 사용하셔도 될 겁니다.

주의하실 점은
mb_strimwidth(문자열, 시작, 끝, 끝에 붙일 말, 인코딩)
함수가 저렇게 생겼는데요, '끝에 붙일 말' 부분에 보통 '...'을 넣어서 사용하면 저 점 개수까지 포함해서 앞에 숫자에 영향을 미치네요.
echo mb_strimwidth($eng, 0, 6, "...", "UTF-8");
이렇게 하면 'tes...' 이렇게 나옵니다.

그래서 그냥 안 쓰시거나 혹은
echo mb_strimwidth($eng, 0, 6, "", "UTF-8")."...";
이렇게 편법으로 사용하시는 게 좋을 것 같습니다. ㅎㅎ

답변을 작성하시기 전에 로그인 해주세요.
전체 59,646
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT