No.1ベストアンサー
- 回答日時:
そういう関数(strwidth ですか?)がないというだけで,
おそらくいくつか方法はあると思いますが,思いついた1例です。
簡単な例↓
------------------------------------------------
// 変数 S を任意の文字列とします
S = "a";
// 任意の文字列の 1 番目(0) の16ビット整数を N に代入
N = S.charCodeAt(0);
// N による条件分岐
if (N<=255) {
trace("1バイト文字("+N+")");
} else {
trace("2バイト文字("+N+")");
}
------------------------------------------------
上の考え方を基に,
文字列のバイト数をカウントする関数を作成したのが次の例です。
---------------------------------------------
// ユーザ定義関数 getStrWidth の定義 引数S
function getStrWidth(S) {
// バイト数を表す変数 N の初期化
N = 0;
// Sの文字数分ループ
for (i=0; i<S.length; i++) {
// 条件分岐
if (S.charCodeAt(i)<=255) {
N += 1;
} else {
N += 2;
}
}
trace(N);
}
// ユーザ定義関数 getStrWidth の実行
getStrWidth("3(1)ssSS");
/* trace される数の検算
3:1バイト, (:1バイト , 1:2バイト, ):1バイト
s:2バイト, s:1バイト, S:2バイト, S:1バイト
1+1+2+1+2+1+2+1=11 →11 が trace される
*/
---------------------------------------------
うまく行くと思うのですが...。
TAB とか 改行コード とかのエスケープ文字関連のものが入ったら,ひょっとしたらうまく行かないかもしれません。
この回答へのお礼
お礼日時:2007/09/19 00:42
なるほど!
charCodeAt が255以下なら1バイト文字なのですね。
「\n」や「\t」も試しましたが1バイトになるようです。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- マウス・キーボード macからリモートデスクトップでwindowsに接続した際のキーボード配列 3 2023/07/10 08:40
- 大学・短大 学生ローン日本学生機構の奨学金について詳しい方教えて下さい。 保証人の職場にパソコンから株式会社○○ 1 2022/04/13 05:57
- その他(Microsoft Office) WordやExcelで英数字のみ半角または全角にしたい 6 2022/08/03 08:18
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- Excel(エクセル) エクセルの数式で教えてください。 3 2022/10/25 10:52
- Excel(エクセル) マクロでボタンにつける名前がどこに設定されているかわからないケースがありました。 1 2023/06/19 19:37
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルシート名の制限を変更...
-
10Mバイトて文字数に すると何...
-
UTF-8で5~6バイトになる文字コ...
-
「1TB」のHDDに日本語は何字入...
-
半角、全角の判別方法
-
バイト列とバイナリ列の違いが...
-
文字数を取得したい
-
Javaで日本語1文字のバイト数
-
UTF-8コードの正規表現
-
【ActionScript】全角半角の判...
-
Console.writeLineで文字化け
-
memcmp バイナリデータの比較方法
-
UNICODE対応にするメリットは?
-
機種依存文字をチェックしたい。
-
CRC計算方法
-
SQLで1バイト、2バイト混在...
-
sizeof(long), sizeof(short)...
-
リトルエンディアンのデータを...
-
char str[256]の256の意味は?
-
varchar(M)のMは文字数ですかバ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルシート名の制限を変更...
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
COBOLのCOMP形式について
-
char str[256]の256の意味は?
-
バイト列とバイナリ列の違いが...
-
C++ Builderで文字列をバイトに...
-
VBAでShift-JISのURLエンコード
-
機種依存文字をチェックしたい。
-
「1TB」のHDDに日本語は何字入...
-
GetWindowTextでアドレスバーか...
-
ピクセル,dpiから容量(バイト...
-
【VB2005】テキストボックス内...
-
URLは最高何文字まで可能なので...
-
64bit対応
-
UCS-2の一覧表が欲しい
-
VBAでUnicodeしか存在しない文...
-
SQLで1バイト、2バイト混在...
-
ビットスワップとバイトスワッ...
-
CRC計算方法
おすすめ情報