채택완료

회원가입시

2015-10-14 (수) 22:42:28 3,270

닉네임을

한글로 할때 6자 내외

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

|

답변 2개 / 댓글 2개

채택된 답변
+20 포인트
2015-10-14 (수) 23:49:46
한글과 영문을 구분 못하지 않나요?
제목 글자수를 다르게 구분하려다 방법을 못찾아 포기한...;;;
2015-10-15 (목) 09:56:38
Copy
<?$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>

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

답변에 대한 댓글 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")."...";
이렇게 편법으로 사용하시는 게 좋을 것 같습니다. ㅎㅎ

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