从Textarea获取文本,并将每一行存储在单独的变量中

问题描述 投票:0回答:2

我想为我的网站制作一个自定义的订购表格,该表格将允许客户在文字区域中输入自定义的刻印消息。客户最多可以雕刻3条线。

我想从textarea收集文本,并将每一行分成其自己的变量。例如,如果客户输入了文本区域:

Amy and John Smith
12/14/95
I'll always be by your side

是否可以将每行存储为自己的变量? (在JavaScript中)

var engravementLine1 = "Amy and John Smith";
var engravementLine2 = "12/14/95";
var engravementLine3 = "I/'ll always be by your side";
javascript
2个回答
0
投票

您可以使用.split(/\n/)分割输入的值,其中/\n/是换行符的正则表达式。这样做:

const string = "
Amy and John Smith
12/14/95
I'll always be by your side
"

const splitUp = string.split(/\n/)

将为您提供一个数组,其中每一行都是数组中的一个新项目,然后可以轻松为其分配值。


0
投票

如果您要保留特定格式,我不建议您使用textarea,因为已知用户会输入不可预测的内容。

您可以使用此代码获得<textarea id="mytextarea"></textarea>的每一行:

document.getElementById('mytextarea').value.split('\n');

这会给你这样的东西

const resultArr = [“艾米和约翰·史密斯”,“ 12/14/95”,“我将永远在你身边”]

然后您可以使用resultArr并将所有内容映射到您的变量,就像这样

var engravementLine1 = resultArr[0];
var engravementLine2 = resultArr[1];
var engravementLine3 = resultArr[2];

更新:查看parse a textarea in substrings based on line breaks in Javascript


-1
投票

固定:

function makeAray(v){
  var txtArray=v.split('\n');
  for(var i=0;i<txtArray.length;i++){
    /\s$/.test(txtArray[i])?txtArray[i]=txtArray[i].replace(/\s$/,''):null;
    alert(txtArray[i]+' has the length '+txtArray[i].length)
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.