• 締切済み

javascriptで文字列を取り出したいです。

下記のようなHTMLソースから果物の文字列を取り出したいです。 りんご、赤、果物、100円などの内容が変わっても平気なように、[種類]に注目して右にある文字列を取れるようにしたいのですが方法がわかりません。 どなたか解答をお願いします。 <body> <pre> [名前] りんご [色] 赤 [種類] 果物 [値段] 100円 </pre> </body>

みんなの回答

  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.1

str = "\n[名前] りんご\n[色] 赤\n[種類] 果物\n[値段] 100円\n" obj = str.match(/[^\n]+/g).reduce(function (obj, str) {  var arr = str.match(/\[(.+)]\s*(\S+)/)  obj[arr[1]] = arr[2]  return obj }, {}) // Object {名前: "りんご", 色: "赤", 種類: "果物", 値段: "100円"}

関連するQ&A

  • 画面から文字列を取得してその文字列の位置を知る方法

    こんばんは。 質問させてください。 画面から文字列を選択して、取得します。(これは出来ました。) その文字列がHTMLソースファイルの どの位置のものか取得する方法はありますでしょうか? ○番目の「こんばんは」を画面から取得した時に 同じ文字列があっても、○番目の位置が取得出来る方法なのですが・・・ ---- <HTML><HEAD></HEAD> <BODY> おはよう、こんばんは。 さようなら、ありがとう。 しつれいしました、おはよう、こんばんは。 こんばんは、さようなら。 さようなら </BODY> </HTML> ----

  • 文字列の抽出

    HTMLを秀丸で特定の文字列だけ残して削除したいのですが、 やり方はあるでしょうか? ソースの中に <strong>りんご</strong> <strong>みかん</strong> という感じで<strong></strong>の間に いろいろな文字があります。 で、このソースの<strong></strong>の間の文字だけ のこすようなマクロはあるでしょうか? 欲を言えば<strong></strong>も削除して、 間の文字だけが残せるとなをいいのですが・・・・

  • Excelで文字列のまとめ方

    文字列のまとめ方で困っています。お手数ですが教えて下さいm(__)m 下記データがあったとします。 _ __A______B 1_種類___品名 2_調味料_醤油 3_調味料_食塩 4_調味料_胡椒 5_果物___りんご 6_野菜___胡瓜 7_野菜___玉葱 8_果物___バナナ 9_調味料_料理酒 ・ ・ ・ 上記データから下記のようにプルダウンリストにしたいです。 いきなりデータからプルダウンリストにするのが難しいかもしれないので、いったん上記を関数とかで他のセルにまとめさせておき、それをプルダウンリストにする方法でも大丈夫です。 (1)A列データプルダウン 一つ目のプルダウンリストには、A列の同じ文字を省いたもので選択可能にする。 上記例で言うと、調味料、果物、野菜が一つずつリストに表示される。(プルダウンリスト表示は2行目から) (1)B列データプルダウン 二つ目のプルダウンリストには、B列の文字を引っ張って来るが、上記A列データプルダウンで選択した文字と同じ行にある文字のみ選択可能にする。 例えばA列データプルダウンで果物を選んだら、このB列データプルダウンメニューにはりんごとバナナのみがリストに表示される。) 上記例のデータは9行目までですが、もっと多く存在し、A列、B列のデータ種類も他にまだあります。 データでA列の文字は被る事ありますが、B列の文字は被ることありません。 データとプルダウン箇所は可能であればシート分けしたいですが、困難な場合は同じワークシート内でも構いません。

  • javascriptでtextareaに文字列を追加したい

    textareaの最後尾に文字列を追加したいです。 いろいろサイトを検索してみたのですが、解決できず困っています。  <form>中に<textarea>とボタンを設定しておきボタンを押すと  文字列を最後尾に追加する。 というのはありました。 私は、ボタンは無しで、画面を読み終わったタイミングで、textareaの最後尾に文字列を追加したいのです。 (仕様で、bodyタグにonloadを記述することは出来ません。) (またcgiでHTML記述を生成しています。) が、どこかのサイトにあった例を見ても、どのように自分のソースに 反映したらよいのか分からず・・・。 サイトにあった例を参考に、下記のように記述してみましたが駄目でした。 <textarea name="textArea_A"></textarea> <SCRIPT LANGUAGE="JavaScript"> <!-- var objTextarea = document.getElementsByName('textArea_A')[0]; objTextarea.value += "AAA"; //--> </SCRIPT> (これで、<textarea name="textArea_A">AAA</textarea> となってくれると良いのですが・・・。) トンチンカンな意味不明な点があるかも知れませんが、 どうか宜しくお願いいたします。

  • Javascriptで特殊文字を置換する方法

    表題の件で分からず教えてください。 PerlでHTMLとJavascript(HTML埋め込み)を作成しています。 Javascript(On Click)で、文字列を置換させたいのですが、うまくできません。 (最終的にやりたいことはTextAreaに埋め込んだタグ付き文章を「プレビューする」ようなイメージです) ■置換前の文字列 $body$ ■置換後の文字列 任意の文字列(タグを含む) ネットで調べたところ次の方法でできるようだったので試しましたが、できませんでした。 var rgexp = new RegExp("\$body\$", "g"); str = frm.preview.value.replace(rgexp, "■■■"); 「$」とエスケープ文字をはずすとうまくいくので、多分「$」で失敗しているのだと思いますが 解決が分かりません。 ※エスケープをはずすとPerlの出力時に怒られてしまいます お分かりになる方いらっしゃいましたらお願いします。

  • エクセルの関数かまくろで

    E列に『林檎』とある場合同行のB列の文字列を 別シート『Sheet1』へ貼り付ける形にしたいのですが 貼り付けたいところに以下を入力しましたが うまくいきませんでした。 =IF(果物種類!E3<"林檎","",TEXT(,果物種類!B3)) どうすればよいと思いますか?

  • javascriptで要素の文字列の取得方法

    現在、javascriptとgreasemonkeyを勉強中なのですが、以下のソースでp要素の文字列?にある一部分を取り出して、 他サイトに繋がるリンクを作成したいと思っています。 XPathを使用して、タグ自体は取得できたのですが、サンプルソースの「ほげほげ」部分はどうしたら、取得できるのでしょうか? XPathを使用しなくても取得できるでしょうか? また、「ほげほげ」から○○部分を取り出したいのですが、取り出したい物はページごとに違うのでどのようなコードを書けばいいか分かりません。 しかし前後の文字列は一定です。 サンプルソース <html> <body> <div><p>ほげほげ○○</p></div>  :  : ほげほげ部分は、実際はクエリにたいに「search?p=hogehoge&type=&id=○○」となっています。 説明不足でわかりにくいとは思いますが、ご教授よろしくお願いします。

  • 空白セルで区切られた文字列の種類を求める関数

    以下の条件を満たす excel関数がありましたら 教えてください。    A       B 1 りんご 2 みかん 3 りんご 4 なし 5 なし      3 ← 結果 6 7 なし 8 りんご 9 りんご     2 ← 結果 10 上記のようにA1からA10のセルに 文字列と空白が入っているとき、 空白で区切られたグループ内で、 文字列の種類が一体何種類になるのかを、 数えたいと思います。 ちなみに、関数はB列に入力したいのですが、 空白の一つ上のセルにだけ結果がでるように 表示させたいです。 説明不足でしたら申し訳ありません。 よろしくお願いいたします。

  • javascriptでalertの文字列をコピー

    初歩的な質問になるかもしれませんが、 javascriptのalertを使用し、表示された文字列をコピペ出来る方法はありますでしょうか? したいことは、下記のalertで表示された【てすと】という文字をコピーして、 editorやワードなどに貼り付けることです。 ブラウザによって異なるのは実証済みです。 FireFoxでは、文字の反転はOKだが右クリックがきかない(Ctrl+Cでコピー・貼り付けはOK) Chrome・IE では反転不可。 多くのブラウザでも同じように簡単にコピーできる方法があれば御教授ください。 <html> <head> <head/> <body> <script language="javascript"> <!-- function aaa(text) { alert(text); } --> </script> <a href="javascript:void(0);" onclick="aaa('てすと');">onclick</a> </body> </html> 以上、宜しくお願い申し上げます。

  • アルファベット文字列の割付

     一太郎12です。  HTMLソースのようなアルファベット文字列を改行を入れずに長く複数行にわたって入力すると、大抵のワープロソフトがそうであるように、スペースのところで無理矢理単語を区切られて行変えされてしまいますよね。望んでもいないのに単語として区切られることで字間が行によってバラバラになって見た目がひどくなるんです。  アルファベット文字列だからといって単語認識して無理矢理行変えさせないようにするにはどうしたらいいですか?

専門家に質問してみよう