入力値から半角濁点を除外した文字の文字数を算出し、うまくいかないです。
こちら、何がいけないのでしょうか・・・。
php
1function checkStrLengthLimit($str, $limit) 2{ 3 if( mb_strlen(mb_ereg_replace("゙|゚","",$str), "UTF-8") > $limit ){ 4 return "文字数超過"; 5 } 6 return "問題無し"; 7}
#今の動作となって欲しい動作
上限数($limit):10
パターンA
文字列($str):ガガガガガガガガガガ
今の動作:文字数超過
なって欲しい動作:問題無し
パターンB
文字列($str):ガガガガガガガガガガガ
今の動作:文字数超過
なって欲しい動作:文字数超過
#追加試験結果
上限数($limit):10
文字列($str):ガガガガガ
結果:問題無し
文字列($str):ガガガガガガ
結果:文字数超過
文字列($str):カカカカカカカカカガ
結果:問題無し
文字列($str):カカカカカカカカガガ
結果:文字数超過
どういうふうにうまくいかないんでしょうか
追記しました。
http://charset.7jp.net/sjis.html
こちらの半角文字の表でガを表示してみようとすると2文字必要になってしまいますが、そういった関係かもしれませんね。
CHARSETと内部文字コードを調べてみるとどうでしょう?
すみません。
define作っており、コードコピペ時に変えるのが漏れていました。
"UTF-8"になります。変更しました。
試験を続け、結果を追記しました。
どうにも、半角濁点の置換が1文字しかされていないようです。
回答1件
あなたの回答
tips
プレビュー
