Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery从textarea获取随机单词_Javascript_Jquery_Random_Input_Words - Fatal编程技术网

Javascript Jquery从textarea获取随机单词

Javascript Jquery从textarea获取随机单词,javascript,jquery,random,input,words,Javascript,Jquery,Random,Input,Words,我的问题很简单,但我想不出怎么做 我有一个文本区域,其中有一些文本,我想从文本中获取5个随机单词,并将它们放入另一个输入字段(自动)。我不想说具体的话。随机5个单词。就这样。谢谢 例如: “Lorem ipsum Door sit amet,Concertetur Adipising Elite,sed do 这是一种临时性的劳动和生活方式 最低成本、最低成本和最低成本 我是一个普通消费者,我是一个酒鬼 这是一个充满活力的故事 不可忽视的例外情况,必须在 这是我的错,因为我的动物是我的劳动。”

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

我有一个文本区域,其中有一些文本,我想从文本中获取5个随机单词,并将它们放入另一个输入字段(自动)。我不想说具体的话。随机5个单词。就这样。谢谢

例如:

“Lorem ipsum Door sit amet,Concertetur Adipising Elite,sed do 这是一种临时性的劳动和生活方式 最低成本、最低成本和最低成本 我是一个普通消费者,我是一个酒鬼 这是一个充满活力的故事 不可忽视的例外情况,必须在 这是我的错,因为我的动物是我的劳动。”

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

这应该可以:

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 content=$(“#myTextarea”).val(),
文字=内容。拆分(“”);
var randWords=[],
lt=单词长度;
对于(变量i=0;i<5;i++)
randWords.push(单词[Math.floor(Math.random()*lt)];
$(“#其他字段”).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);
}
var-nextWord;
对于(变量i=0;i<5;i++)
{
nextWord=words[Math.floor(Math.random()*lt)];
if((“|”+randWords.join(“|”+“|”)indexOf(“|”+nextWord+“|”)1)
{
我--;
继续;
}
randWords.push(下一步);
}

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

  • 从文本区域获取单词
  • 删除重复项
  • 迭代数组获取单词并将其从数组中删除(避免重复)
  • 示例代码:

    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 ):
    
    var text=“Lorem ipsum……”;
    var words=$.unique(text.match(/\w+/mg));
    var random=[];
    对于(var i=0;i甚至更短:

    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
    

    你应该检查数组是否已经包含该字符串,并对indexOfCode进行加密以防止重复。使用文本而不是val作为输出div这很简单->好的,它可以工作,但当我尝试在我的站点中工作时它无法工作!有什么问题,请帮我解决。感谢以前的帖子。我的HTML代码是与此相同,我粘贴在JSFIDLE中,从外部js文件加载jquery代码。结果相同…:/