2016-10-28 97 views
0

我想以很多字符串的形式接受用户输入。我想将它们存储在一个数组中,并且输入应该通过换行符分开。用Javascript输入用户输入(用换行符分隔)用

它应该是非常喜欢这样的:https://www.random.org/lists/

我无法掌握在何处存在 - 有人可以帮忙吗?我正在使用JavaScript,但任何使用JS或jQuery的解决方案都会很棒!

我发布了我的JS。我想从用户输入的var人,而不是自己填充阵列。

感谢,

$(document).ready(function() { 
    $(".btn").on('click', function() { 
    var people = ["Markus Eriksson", "Leticia Hoshino", "Yemi Afolabi", "Eskil Fogelström", "Josefina Liedberg", "David Bjørn Bograd", "Tilda Dahlgren", "Damien Vignol", "Sofie Cousu", "Carolina Lindelöw", "Bilal Khan", "Louise Brandrup-Wognsen", "Emilia Lehto", "Albin Hagström", 
     "Victor Borg", "Anna Stella Lo-Ré", "Loucmane", "Angelica Ruth", "Victoria VL", "Johan Hellström", "Micke Skoglund", "Anna Unger", "Isaac Sennerholt", "Cyndie Léa Vintilescu", "Mahle Rakela Robin", "Louise Ek", "Ibrahim Bajwa", "Abodi Ismail", 
     "Alex Ashman", "Elin Grass Casalini", "Amanda Schultz", "Abenezer Abebe", "Julia Hoff", "Enny Hellsén", "Michel George", "Abdullahi Hussein", "Teodor Meurling", "Andrea Sami Mogren", "Thea Arpine Gasparyan", "Jakob Eberson" 
    ]; 
    var groupSize = $("input[name=checkListItem]").val(); 
    var groups = []; 

    $(".group").remove(); 

    // Randomizing function 
    Array.prototype.shuffle = function() { 
     var input = this; 

     for (var i = input.length - 1; i >= 0; i--) { 

     var randomIndex = Math.floor(Math.random() * (i + 1)); 
     var itemAtIndex = input[randomIndex]; 

     input[randomIndex] = input[i]; 
     input[i] = itemAtIndex; 
     } 
     return input; 
    }; 

    people.shuffle(); 

    // Split people into chunks and push new arrays into var groups 
    while (people.length > 0) { 

     chunks = people.splice(0, groupSize); 
     var chunksSpace = chunks.join(', '); 

     groups.push(chunksSpace); 
    } 

    // Append the groups into the DOM 
    $(document).ready(function() { 
     for (var i = 0; i < groups.length; i++) { 
     $('.all-groups').append("<div class='group'><p><span class='groupheader'>Group " + (i + 1) + "</span></br> " + groups[i] + "</p></div>"); 
     } 
    }); 
    }); 
}); 
+0

向我们展示您迄今为止编写的代码。 –

+0

@KhorshedAlam我现在添加了我用来随机化数组的JS代码。我想从用户输入的是var人。 – davidbograd

+0

JS document.getElementById(“element_id”).value.split(“\ n”);或者JQuery $(“#element_id”)。val().split(“\ n”); –

回答

0

纯JavaScript

document.getElementById("element_id").value.split("\n"); 

或JQuery的$("#element_id").val().split("\n");

对于你的例子给你输入id='people'建议立即进行删除d工作,也避免了.replace(/\n+/g,"\n")的额外换行符。

$(document).ready(function() {  
    // Randomizing function 
    Array.prototype.shuffle = function() { 
     var input = this; 

     for (var i = input.length - 1; i >= 0; i--) { 

     var randomIndex = Math.floor(Math.random() * (i + 1)); 
     var itemAtIndex = input[randomIndex]; 

     input[randomIndex] = input[i]; 
     input[i] = itemAtIndex; 
     } 
     return input; 
    }; 

    $(".btn").on('click', function() { 
    var people = $("#people").val().replace(/\n+/g,"\n").split("\n"); 
    var groupSize = $("input[name=checkListItem]").val(); 
    var groups = []; 

    $(".group").remove(); 

    people.shuffle(); 

    // Split people into chunks and push new arrays into var groups 
    while (people.length > 0) { 

     chunks = people.splice(0, groupSize); 
     var chunksSpace = chunks.join(', '); 

     groups.push(chunksSpace); 
    } 

    // Append the groups into the DOM 
    $(document).ready(function() { 
     for (var i = 0; i < groups.length; i++) { 
     $('.all-groups').append("<div class='group'><p><span class='groupheader'>Group " + (i + 1) + "</span></br> " + groups[i] + "</p></div>"); 
     } 
    }); 
    }); 
}); 
+0

非常感谢你Mamdouh,也是为了解释和使用上下文中的代码。让我明白发生了什么,现在它正在为我工​​作! – davidbograd

+0

不客气,我很高兴随时为您提供帮助:) –

0
var text = $('#total-number').text(); 
var eachLine = text.split('\n'); 
    alert('Lines found: ' + eachLine.length); 
    for(var i = 0, l = eachLine.length; i < l; i++) { 
     alert('Line ' + (i+1) + ': ' + eachLine[i]); 
    } 
+0

尽管此代码片段可能会解决问题,但[包括解释](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)确实有助于提高帖子的质量。请记住,您将来会为读者回答问题,而这些人可能不知道您的代码建议的原因。 – andreas

0

使用split到多线串分成几部分:

var textarea = document.querySelector("textarea"); 
 

 
textarea.addEventListener("change", function(e) { 
 
    console.log(textarea.value.split((/[\n\r]/g))); 
 
});
<textarea></textarea>

正则表达式链接: