ポイント |
if (navigator.userAgent.indexOf("Mac") > -1) result = txt.split("\n");
if (navigator.userAgent.indexOf("Win") > -1) result = txt.split("\r\n");
n = Math.floor(Math.random() * (result.length - (getLine - 1)));
aText = result.splice(n,1);
resultText = resultText + aText + String.fromCharCode(13);
|
説 明 |
テキストエリアからランダムに3行取り出すにはsplit()を使って改行コードで文字列を分割します。あとは乱数を発生させ、乱数値を配列の添字として指定し文字列を読み出していきます。このとき重複しないようにするにはsplice()を使って指定した配列要素を抽出します。splice()は取り出した配列要素を元の配列から取り除くため重複することがなくなります。
|
サンプル |
テキストエリアからランダムに3行取り出す(重複なし)
|
補足説明 |
ブラウザによって取り扱う改行コードが異なるので注意が必要です。つまり改行コードはOSとブラウザに依存します。このため、このサンプルでもMac版のFirefoxでは動作してもWindows版のFirefoxでは正しく動作しません。
|
|
■サンプルスクリプトを実行する >>実行
■各ブラウザでの動作結果を見る >>View!
|