0

我想用javascript编写一个代码,从文本中选择一个随机单词,并将其替换为另一个单词。

这是我的代码:

var text = "dog cat apple stone";
var keyword = text[Math.floor(Math.random()*text.length)]; // select random word
var new_phrase = text.replace( keyword, "house"); // replace for other word

document.write("<p>" + text + "</p>" );
document.write("<p>" + new_phrase + "</p>");

但是,这会替换文本中的字母而不是单词。像这样:“dog choset 苹果石”

如何选择随机单词而不是字母?

4

3 回答 3

2

使用text[someIndex]您从 中选择一个字符text。尝试拆分字符串并使用结果数组:

var text = "dog cat apple stone"
   ,txttmp = text.split(/\s+/)
   ,keyword = txttmp[Math.floor(Math.random()*txttmp.length)];
于 2013-01-14T08:59:14.603 回答
1

根据 Kepp it Simple 原则,我会说

var text = "dog cat apple stone";
arrText = text.split(" ");

它会给你和一系列单词。替换数组中的任何单词后,您可以再次使用

arrText.join(" ");
于 2013-01-14T08:59:14.767 回答
0

使用数组

http://www.w3schools.com/jsref/jsref_obj_array.asp

您可以存储这些值,然后使用索引返回它们并取回值。

var text=["dog","cat","apple", "stone"];

var keyword = Math.floor((Math.random()*text.length)); 
text[keyword] = "house"; // replace for other word

document.write("<p>" + text + "</p>" );
于 2013-01-14T09:09:07.663 回答