<div class="xxx">Number is {1|2|3|4}, and {one|two|three|four}</div>
<div class="yyy"></div>
...
var data = $(".xxx").text();
$(".yyy").html(data);
この入力が必要です:
数は{1|2|3|4}、{1|2|3|4}
そして、この出力のようにランダムです:
数は 3 と 4
どうすればいいのかわからない...ごめんなさい:(
<div class="xxx">Number is {1|2|3|4}, and {one|two|three|four}</div>
<div class="yyy"></div>
...
var data = $(".xxx").text();
$(".yyy").html(data);
この入力が必要です:
数は{1|2|3|4}、{1|2|3|4}
そして、この出力のようにランダムです:
数は 3 と 4
どうすればいいのかわからない...ごめんなさい:(
これはJSONではありません。1、2、3、4個の要素をランダムに分割したいとします。|でデータを分割する必要があります 文字を入力してから、結果をランダムに並べ替えます(または独自のシャッフルアルゴリズムを作成します)。
var data = $(".xxx").text(); // initial data
var results = data.split("|"); // split on the "|" and store into results
次に、配列からランダムな要素を取得する必要があります。
var randomNumber = Math.floor((Math.random()*4)+1); // random number (no more than 4 or the array will be out of bounds)
データをシャッフル/表示します。
var firstElement = results[randomNumber];
randomNumber = Math.floor((Math.random()*4)+1);
var secondElement = results[randomNumber];
等々....
split() などを理解するなど、最初は簡単なことから始めてください。
ここに何かがあります:
var data = $(".xxx").text(),
numbs = data.split('{')[1].split('}')[0].split('|'),
words = data.split('{')[2].split('}')[0].split('|'),
newdata = data.split('{')[0]+' '+numbs[Math.floor(Math.random()*numbs.length)];
newdata += data.split('}')[1].split('{')[0]+' '+words[Math.floor(Math.random()*words.length)];
$(".yyy").html(newdata);
次に、正規表現への置換に進みます。
編集:
より動的にし、より多くのプレースホルダーを操作するには、正規表現を少し使用して次のようにすることができます。
var data = $(".xxx").text(),
placeholder = data.match(/{(.*?)}/gi);
$.each(placeholder, function(i,e) {
var options = e.split('|'),
randOpt = options[Math.floor(Math.random()*options.length)];
data = data.replace(e, randOpt.replace(/({|})/g, ''));
});
$(".yyy").html(data);
フィドル </p>
Mathオブジェクト.random()メソッドを使用できます。
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/random
function randomNumber()
{
num = Math.ceil(Math.random() * (1 - 4) + 4);
$(".yyy").text(num)
}