테스트 사이트 - 개발 중인 베타 버전입니다

회원가입시 채택완료

닉네임을

한글로 할때 6자 내외

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

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
한글과 영문을 구분 못하지 않나요?

제목 글자수를 다르게 구분하려다 방법을 못찾아 포기한...;;;
로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

</p><p><?
$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></p><p>

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

음... 최신글 제목 글자수에도 응용 가능한가요?
$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")."...";
이렇게 편법으로 사용하시는 게 좋을 것 같습니다. ㅎㅎ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인

전체 질문 목록

🐛 버그신고