我想为我的网站制作一个自定义的订购表格,该表格将允许客户在文字区域中输入自定义的刻印消息。客户最多可以雕刻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";
您可以使用.split(/\n/)
分割输入的值,其中/\n/
是换行符的正则表达式。这样做:
const string = "
Amy and John Smith
12/14/95
I'll always be by your side
"
const splitUp = string.split(/\n/)
将为您提供一个数组,其中每一行都是数组中的一个新项目,然后可以轻松为其分配值。
如果您要保留特定格式,我不建议您使用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
固定:
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)
}
}