-PR-
解決済み

Javascript使用時のForm文字数上限は?

  • 暇なときにでも
  • 質問No.40065
  • 閲覧数176
  • ありがとう数4
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 30% (3/10)

最近のJavascriptにおける
「1バイト文字も2バイト文字も一文字として判断する」
という特性を利用して、外字文字列のコードを抽出したいのですが…

対象としたいテキスト文字数が80万字ほどあり(^^;、
この量をTEXTAREAへpasteしてJavascriptで一気に処理できるか?
という点を知りたいのです。
まだテキストが手元にないので試せないのですが、
知識としてでも知ってる方がいたらお教え下さい。

ブラウザ環境はIE5.0+Winです。

要するにcsvテキストからシフトJISの0xF040~FFFCを含む行数を
抽出したいだけなので、perlで簡単な方法があればかまわないのですが…
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル8

ベストアンサー率 54% (13/24)

さすがに80万文字っていうのは無理じゃないでしょうか。分割するにしても、いろいろと面倒そうですし、ご自分でも指摘していらっしゃるように、perlで簡単なスクリプトを作るのが現実的だと思います。

アルゴリズムとしては、
1. 1byte読み込む
2. ~0x7f、または0xa1~0xdfなら、1.へ
3. 0xf0~0xffなら、外字用処理を行った後、1.へ
4. それ以外なら、1byteカラ読みして、1.へ
でいいでしょう。
お礼コメント
izk13

お礼率 30% (3/10)

回答ありがとうございます。

やはりperlですか。
「\」処理など変なミスがあると余計なロスが出そうで…
とりあえずそれで試してみます。
投稿日時 - 2001-02-14 15:17:36
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1

 えーとですね。
 2バイト文字を1文字として数えるのはIEが昔からやってきたことで、NNでは逆に今でも2バイト文字は2文字です。
 ですのでJavaScriptでやるのであればその辺の区分けが必要です。

 Perl でできるんだったら Perl の方が簡単ですよ(^_^; わざわざ苦労することもないです。IEとNNの区分けも面倒ですし。

 Perl では、文字列をシフトJISに変換したのち、

  if ( $st =~ /([\xF0-\xFF][\x40-\xFC])/ )

 おそらくはこれで、文字列$stの中に外字が含まれているかどうかが判別できるはずです。上記のif文では、$st に外字が含まれていればtrueを、そうでなければfalseを返します。
 たしか。
 正規表現はあんまし使わないので自信はないです。何度かテストしてみてください。
補足コメント
izk13

お礼率 30% (3/10)

回答ありがとうございます。
Javascriptの実行はIEで行い、公開する類のものではないので大丈夫です。
最近のNN(4.75)では2バイト文字は一文字と数えていた気がするのですが…
関数によって違うのかもしれません。
HTMLのINPUT MAXLENGTHは相変わらず2バイト文字=2文字ですが。
投稿日時 - 2001-02-14 15:18:20


  • 回答No.3

 補足みました。

 NNは2バイト文字を1文字としては扱いません(^_^; これはIEだけの仕様です。
 IEは内部でUNICODEを使用しており、全角半角に関わらずすべての文字を2バイトコードとして扱っています。これが、全角と半角を両方とも1文字として扱える正体です。
 NNは内部でUNICODEを使用していないので、2バイト文字は飽くまで2文字なのです。
 ま、NNは使わないということであれば関係ないですね。

 ちなみにもうプログラムはJavaScriptで書かれたのでしょうか。 処理重くないですか?
補足コメント
izk13

お礼率 30% (3/10)

プログラムは「桐」というDBソフトに
外字検出関数という便利なモノがあったのでそれを使うことになりました(^^;

NNの話ですが、4.75では

a = "あああ".length;

としたときに「3」と返します。
ちなみに4.01では「6」です。さらに、

A = "庁".charCodeAt(0);

などとしたときも、4.75ではIEと同じく「24193」と表示します。
ちなみにNN4.01では「-110」と表示されます。

NNはバージョンによって2バイト文字の判定が違うと思います。
投稿日時 - 2001-02-15 14:25:46
このQ&Aのテーマ
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ