当前位置: 首页 > 知识库问答 >
问题:

Jquery从textarea获取随机单词

卫弘图
2023-03-14

我的问题很简单,但我想不出怎么做。

我有一个带有一些文本的文本区,我想从文本中随机获取5个单词并将它们放入另一个输入字段(自动)。我不想成为特定的单词。随机5个单词。就这样。谢谢!

例子:

“Lorem ipsum dolor sit amet,concetetur adipising elit,sed do eiusmod tempor incidundut labore et dolore magna aliqua。ut enim ad minim veniam,quis nostrud execution ullamco laboris nisi ut aliquip ex ea commodo consequat。Duis aute irure dolore dolore in reprehenderit in voluptate velit esse cilum dolore eu fugiat nulla paritatur。Excepteur sint occaecat cupidatat non proident,sunt in culpaqui officia deserunt mollit anim id est labourum。”

写入此文本时包含的输入字段,例如:ipsum、amet、veniam、velit、decount。

共有3个答案

朱刚捷
2023-03-14

甚至更短:

var str = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.';

function rWords( t ) {
    for ( var i = 5, s = t.match( /(\d|\w|')+/g ), r = [] ; i-- ; r.push( s[ Math.random() * s.length | 0 ] ) );
    return r.join( ', ' ).toLowerCase();
}

console.log( rWords( str ) );
> lorem, eiusmod, elit, dolor, do
乜坚成
2023-03-14

这应该工作:

var content = $("#myTextarea").val(),
    words = content.split(" ");

var randWords = [],
    lt = words.length;

for (var i = 0; i < 5; i++)
    randWords.push(words[Math.floor(Math.random() * lt)]);

$("#otherField").val(randWords.join(" "));

编辑:为了防止重复,可以使用以下选项:

var nextWord;
for (var i = 0; i < 5; i++)
{
    nextWord = words[Math.floor(Math.random() * lt)];
    if (("|" + randWords.join("|") + "|").indexOf("|" + nextWord  + "|") != -1)
    {
        i--;
        continue;
    }
    randWords.push(nextWord);
}
唐运诚
2023-03-14

这是我对工作流程的建议:

  1. 从文本区域获取单词
  2. 删除重复项
  3. 迭代数组获取单词并将其从数组中删除(避免重复)

示例代码:

var text = "Lorem ipsum ......";
var words = $.unique(text.match(/\w+/mg));
var random = [];

for(var i=0; i<5; i++) {
    var rn = Math.floor(Math.random() * words.length);
    random.push( words[rn]);
    words.splice(rn, 1);
}

alert( random ):

jsFiddle中的工作示例

 类似资料:
  • 问题内容: 最近,我开始使用jQuery,并且已经关注了一些教程。现在,我觉得使用它有点能力(这很简单),而且我认为如果能够在网页上制作一个“控制台”,那就太酷了(例如,像在FPS游戏中一样按下“键” ,等),然后将Ajax本身返回到服务器以进行处理。 我本来以为最好的方法是将文本放入文本区域内,然后将其拆分,或者我应该使用keyup事件,将返回的键码转换为ASCII字符,将该字符附加到字符串中并

  • 问题内容: 我有一个生成事实的简单应用。我想合并一个生成随机事实而不是递减的函数。 我的数组看起来像这样。 问题答案: 使用随机类。该类有一个方法,(doc)和引号: 返回一个伪随机数,它从此随机数生成器的序列中提取,在0(含)和指定值(不含)之间均匀分布的int值。nextInt的一般约定是伪随机生成并返回指定范围内的一个int值。所有n个可能的int值均以(近似)相等的概率产生。 因此,您需要

  • 问题内容: 考虑: 如何使用JavaScript从此数组中选择随机值? 问题答案: 这是一个简单的单线 例

  • 问题内容: $items = Array(523,3452,334,31,…5346); 此数组的每个项目都是一个数字。 如何获得随机物品? 问题答案: echo $items[array_rand($items)]; array_rand()

  • 问题内容: var items = Array(523,3452,334,31,…5346); 如何获得随机物品? 问题答案:

  • 我在MongoDB中存储了10万条推文。每条推文的存储方式如下: 我找到了http://bdadam.com/blog/finding-a-random-document-in-mongodb.htmlMongoDB:如何在100个集合中找到10个随机文档?但不确定这是否正是我需要的。 我想获得200个随机字段,以便进行分析。