닉네임을
한글로 할때 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개
2015-10-15 (목) 11:16:50
$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")."...";
이렇게 편법으로 사용하시는 게 좋을 것 같습니다. ㅎㅎ
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")."...";
이렇게 편법으로 사용하시는 게 좋을 것 같습니다. ㅎㅎ
답변을 작성하려면 로그인이 필요합니다.