【问题标题】:Get Text From Textarea, and Storing Each Line in a Separate Variable从 Textarea 获取文本,并将每一行存储在单独的变量中
【发布时间】:2020-03-02 23:44:15
【问题描述】:

我想为我的网站制作一个自定义订单表格,允许客户将自定义雕刻信息输入到文本区域。客户最多可以雕刻 3 行。

我想从 textarea 中收集文本,并将每一行分成自己的变量。例如,如果客户在 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";

【问题讨论】:

  • 是的,有可能。例如,您可以使用 Scanner 类及其 nextLine() 方法。
  • 您可以使用 RegExp 轻松完成此操作,但我实际上会使用三个不同的 <input type='text' />s,因此您可以对每一行进行单独测试并产生与其他故障相对应的单独错误,您也应该程序。比如每行可以有多长?特定行上的文本可以包含什么?确保您也检查服务器端,因为这确实是您网站完整性的最终结果。

标签: javascript


【解决方案1】:

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

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

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

这会给你这样的东西

 const resultArr = ["Amy and John Smith", "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

【讨论】:

  • 非常感谢您接受的答案和/或赞成:)
【解决方案2】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多