• 締切済み

文章を句点で区切って配列に格納する方法を知りたい

一文目。二文目。 三文目。 以上のような文章が、var bodyに入っています。 これを配列questionに、question.push("一文目。,二文目。,三文目。"); のようにして、句点で区切って格納したいです。 句点で区切って格納する方法、なにかありますか? なお二文目と三文目は、改行があります。 教えてください。よろしくお願いします。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

>これだと一文目は抜け出せますが、二文目(bodyArray[1])は“(バックラブ)が原型。”としか抜け出せません。 あれ?そうですか? わたしの環境ではうごいているようですが・・・ <script> function hoge(){ var body="前文。\nGoogle(グーグル)は、アメリカ合衆国のソフトウェア会社、あるいは、同社の運営するインターネット上での検索エンジンである。1996年にスタンフォード大学で博士課程に在籍していたラリー・ページとセルゲイ・ブリンが共同開発した、バックリンクを分析する検索エンジンBackRub(バックラブ)が原型。\後文。"; var bodyArray = body.match(/[^\n]+?。/g); for(var i in bodyArray){ alert(bodyArray[i]); } alert(bodyArray.join(",")); } </script> <input type="button" value="go" onclick="hoge()">

yktaka
質問者

補足

すいません!大事な情報を追加するのを忘れていました。 実は、var.body内部の改行コードは<br/>です。 なので、\nの部分をそのまま<br/>と置き換えたら、前述のような抜き取りかたになってしまいました。 <br/>の場合だと、どのようにするとうまくいくでしょうか? 上のは完璧に抜き出せますね!

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

たとえば、分離文字で配列に落として、結合してみては? <script> function hoge(){ var body="一文目。二文目。\n三文目。"; var bodyArray = body.match(/[^\n]+?。/g); alert(bodyArray.join(",")); } </script> <input type="button" value="go" onclick="hoge()">

yktaka
質問者

補足

回答ありがとうございます。 matchメソッド、便利ですね! ただ、上の正規表現だと、うまく切り取れないときがあります。 例えば、以下の文。 Google(グーグル)は、アメリカ合衆国のソフトウェア会社、あるいは、同社の運営するインターネット上での検索エンジンである。1996年にスタンフォード大学で博士課程に在籍していたラリー・ページとセルゲイ・ブリンが共同開発した、バックリンクを分析する検索エンジンBackRub(バックラブ)が原型。 これだと一文目は抜け出せますが、二文目(bodyArray[1])は“(バックラブ)が原型。”としか抜け出せません。 どのような正規表現だったら、うまく切り取れるでしょうか?

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

var array = body.split("。");

yktaka
質問者

補足

回答ありがとうございます。 splitメソッド、強力ですね。勉強になります。 ただ、これだと<br/>が残ってしまうため、<br/>が取り除けるともっとよいのですが・・・ もしなにか解決方法があれば、教えてください。