我有这个 texarea,我想在用户键入后通过逗号和新行来解析它的值。样本。
输入
/* inside textarea */
2 water, 4 ice
6 lemon
Run Code Online (Sandbox Code Playgroud)
输出:
Total # of Items: 3
Item # Quantity Item Name
1 2 Water
2 4 Ice
3 6 Lemon
Run Code Online (Sandbox Code Playgroud)
这是到目前为止的代码:
$('#$name').keyup(function (event) {
$("#textAreaDiv").show();
if(event.keyCode == 188){
$("#textAreaTaggingDetails").html(getItems($('#$name').val().split('\\n'), 'comma'));
//console.log("comma press");
}
else if (event.keyCode == 13) {
//console.log("new line press");
$("#textAreaTaggingDetails").html(getItems($('#$name').val().split(','), 'newLine'));
}
Run Code Online (Sandbox Code Playgroud)
});
function getItems(eachLine, type){
var xcontent = "";
$("#titleTextAreaTagging").html('Total # of Items: ' + eachLine.length + '<br/>');
for(var i = 0, l = eachLine.length; i < l; i++) {
var quantity = (eachLine[i]).match(/\d+/);
var itemName = (eachLine[i]).replace(/[0-9]+/, "");
xcontent += "<div class=\"col-md-4\"><h6 class=\"text-info mn\" id=\"titleTextAreaTagging\">"+ (i+1) +"</h6></div><div class=\"col-md-4\"><h6 class=\"text-info mn\" id=\"titleTextAreaTagging\">"+ quantity +"</h6></div><div class=\"col-md-4\"><h6 class=\"text-info mn\" id=\"titleTextAreaTagging\">"+ itemName +"</h6></div>";
}
return xcontent;
Run Code Online (Sandbox Code Playgroud)
}
这样我只能用新行得到正确的输出,但不能用逗号得到正确的输出
你可以做的是,你可以先用逗号替换所有新行,然后用逗号分割,这很容易。
str = $('#$name').val().replace(/(?:\r\n|\r|\n)/g, ',');
var partsOfStr = str.split(',');
Run Code Online (Sandbox Code Playgroud)