javascriptのソースをいろいろと見ていると、以下のような行に遭遇しました。
wordcount=content.document.getSelection().replace(/\s/g,' ').replace(/ {2,}/g,' ').replace(/ $|^ /g,'').split(' ');
この行はあまりにもまとめられて過ぎていて混乱してしまいます。
この行をもっと簡単な形で一行ずつ書くとすればどのようになるのでしょうか?
一行ずつに分割されたのなら私にも理解できると思うので、ぜひお願いします。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
wordcount=content.document.getSelection().replace(/\s/g,' ').replace(/ {2,}/g,' ').replace(/ $|^ /g,'').split(' ');
正規表現と文字列の分割を一度にやっているのではないでしょうか
content.document.getSelection()
replace(/\s/g,' ')
空白文字(スペース、タブ、改行)を空白文字(スペース)に変換(グローバルマッチ)
replace(/ {2,}/g,' ')
2つ以上の連続した空白文字(スペース)を1つの空白文字(スペース)に変換(グローバルマッチ)
replace(/ $|^ /g,'')
記号を削除(グローバルマッチ)
split(' ')
空白文字(スペース)で分割
あまり詳しくないのですが、左から順番に処理しているとして
content.document.getSelection() で取得した値から
タブ、改行、2つ以上連続するスペース を1つのスペースに変換、$や|などの記号を削除して
最後にスペースで区切った文字列を wordcount に配列として格納
ということではないでしょうか
参考URL:http://www5a.biglobe.ne.jp/~n_rieko/javascript/1 …
分割のみでなく、わざわざ個別に解説してくださり、ありがとうございます。
とてもよく理解できました。
また、参考リンクもとても勉強になります。
ありがとうございました。
No.3
- 回答日時:
W = D.getSelection().replace(P1).replace(P2).replace(P3).split(P4);
↓
W = D.getSelection();
W = W.replace(P1);
W = W.replace(P2);
W = W.replace(P3);
W = W.split(P4);
左から順番に摘要されると単純に考えればOKです。
No.2
- 回答日時:
#1さんの回答を一箇所だけ訂正。
>replace(/ $|^ /g,'')
>記号を削除(グローバルマッチ)
これは記号の削除ではなく、行頭と行末にある空白の削除です。
' aaa '
↓
'aaa'
参考URL:http://www.tohoho-web.com/js/regexp.htm
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- オープンソース Python openpyxlを使用したセル番地の使用について 1 2023/08/03 22:05
- Visual Basic(VBA) Excel vba で1と10を正確に判断させる方法を教えてください。 TからU列に1と入力があれば 3 2022/12/26 16:54
- Visual Basic(VBA) 空白を全て削除したい 2 2023/05/13 21:36
- Access(アクセス) Accessのクエリで、replace関数を使い、データの中にある”をブランクに置き換えたいのですが 6 2022/06/15 14:54
- Excel(エクセル) Excelの社員名簿 6 2023/07/10 16:35
- Visual Basic(VBA) 実行時エラー´5854´ 文字列型パラメーターが長すぎます。 3 2023/06/08 21:17
- Visual Basic(VBA) セルの値からファイルを複数作りたい2 3 2022/10/07 15:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba SelStart、SelLen教えてく...
-
javascript 文字列の最後から1...
-
VC#でテキストボックスに変数の...
-
正整数の半角数字かどうか判定する
-
JavaScriptでの全角カナ英数字...
-
エクセル 半角英数6文字以上 ...
-
C#でTextBoxに数値のみ入力可能...
-
gas 全角数字を半角数字に変換
-
Excel VBA にて JavaScript の...
-
ラベルの色がかわってくれない
-
JavaScriptで ブラウザの閉じる...
-
時間稼ぎの命令文とは?
-
JavascriptでのExcel起動について
-
JSPの処理の途中で、JavaScript...
-
クロスドメインでクッキーの取得
-
Webページ中の javascript をVB...
-
JavaScriptで、表を絞り込み&ソ...
-
タブブラウザで focus() を実...
-
C#の質問です。
-
表示ページによって、aタグ内の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Vba SelStart、SelLen教えてく...
-
VB.NET2003 テキストボックスに...
-
gas 全角数字を半角数字に変換
-
「終了していない文字列型の定...
-
正整数の半角数字かどうか判定する
-
VBAによる第3、4水準文字の判定...
-
ハイフンだけ置換したい。
-
VC#でテキストボックスに変数の...
-
C#でTextBoxに数値のみ入力可能...
-
エクセル 半角英数6文字以上 ...
-
漢字などを正規表現でパターン...
-
JavaScriptに関する質問です。 ...
-
正規表現について
-
javascript 文字列の最後から1...
-
エクセルVBA/ Formatで文字列が...
-
禁止文字チェック
-
Javascript 全角カナ+半角スペ...
-
CListCtrl の特定のセル(アイ...
-
文字認証の問題
-
Access VBAで、数字だけをチェ...
おすすめ情報