プロが教えるわが家の防犯対策術!

一文目。二文目。
三文目。

以上のような文章が、var bodyに入っています。
これを配列questionに、question.push("一文目。,二文目。,三文目。");
のようにして、句点で区切って格納したいです。

句点で区切って格納する方法、なにかありますか?
なお二文目と三文目は、改行があります。
教えてください。よろしくお願いします。

A 回答 (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()">

この回答への補足

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

上のは完璧に抜き出せますね!

補足日時:2008/12/07 21:22
    • good
    • 0

たとえば、分離文字で配列に落として、結合してみては?



<script>
function hoge(){
var body="一文目。二文目。\n三文目。";
var bodyArray = body.match(/[^\n]+?。/g);
alert(bodyArray.join(","));
}
</script>
<input type="button" value="go" onclick="hoge()">

この回答への補足

回答ありがとうございます。
matchメソッド、便利ですね!
ただ、上の正規表現だと、うまく切り取れないときがあります。

例えば、以下の文。
Google(グーグル)は、アメリカ合衆国のソフトウェア会社、あるいは、同社の運営するインターネット上での検索エンジンである。1996年にスタンフォード大学で博士課程に在籍していたラリー・ページとセルゲイ・ブリンが共同開発した、バックリンクを分析する検索エンジンBackRub(バックラブ)が原型。
これだと一文目は抜け出せますが、二文目(bodyArray[1])は“(バックラブ)が原型。”としか抜け出せません。

どのような正規表現だったら、うまく切り取れるでしょうか?

補足日時:2008/12/06 18:47
    • good
    • 0

var array = body.split("。

");

この回答への補足

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

もしなにか解決方法があれば、教えてください。

補足日時:2008/12/06 18:49
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!