テキストエリアに下記の文字が入力されています
Apple
orange
Appleりんご
最後の行(Appleりんご)のみのバイト数を数える方法を教えて頂きたいです。
なお、行数は可変します。
最終行のみを数える方法を教えて頂きたいです。
よろしくお願いします
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
文字コード
まず、前提としてHTML文書の文字コードは UTF-8 でしょうか。
UTF-8 以外の文字コードに対応するには TextEncoder
を使用しますが、未実装ブラウザの為にPolyfillを適用する必要があります。
※「UTF-8以外は標準関数では測れない」と書きましたが、誤りでしたので訂正しました。
UTF-8 の場合
既存の回答でも可能ですが、別の切り口を紹介しておきます。
JavaScript
1var string = 'Apple\norange\nAppleりんご', 2 lastLine = /.*$/.exec(string)[0], 3 byteLength = encodeURIComponent(lastLine).replace(/%[\da-fA-F]{2}/g, '%').length; 4 5console.log(lastLine, byteLength); // "Appleりんご" 14
TextEncoder
new TextEncoder
は IE, Edge, Safari で実装されていない為、使用する場合はご注意ください。
Polyfillがいくつかあるようです。
Re: sssssss さん
投稿2017/01/30 01:29
編集2017/01/30 03:42総合スコア18156
0
var last = textbox.split(/\r\n|\r|\n/).getLastVal();
上記で最後の行を取得できるかと思います。
バイト数は以下などが参考になるかと思います。
http://qiita.com/xtetsuji/items/a8490a7fea3f5a01e49c
投稿2017/01/29 23:30
総合スコア648
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/30 02:39
2017/01/30 03:11
2017/01/30 11:39
0
(new TextEncoder).encode(textarea.value.split('\n').pop()).byteLength
投稿2017/01/29 23:28
総合スコア4267
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/30 11:37 編集