【问题标题】:How do I split a string with space after 30 array in javascript?如何在javascript中的30个数组之后用空格分割字符串?
【发布时间】:2019-11-20 19:44:07
【问题描述】:

数据输入:

Lorem Ipsum is simply dummy,aaaaa,2,0,High Max,22322,1212123,121212,121212,0,121212,0,121212,0,0,0,0,121212,0,0,121212,0,0,0,0,0,0,0,0,0
Lorem ipsum dolor sit amet ,aaaaa,2,0,Low Min ,22322,1212123,121212,121212,0,121212,0,121212,0,0,0,0,121212,0,0,121212,0,0,0,0,0,0,0,0,0
Mauris vestibulum leo id turpis imperdiet,aaaaa,2,0,High Min,22322,1212123,121212,121212,0,121212,0,121212,0,0,0,0,121212,0,0,121212,0,0,0,0,0,0,0,0,0

HTML:

<input id="data_input"></input>

JAVASCRIPT:

var string= $("#data_input").val();
var newstring= string.split(/[ ,]+/);

输出(但错误):

"Lorem", "Ipsum", "is", "simply", "dummy", "aaaaa", "2", "0", "High", "22322", "1212123", "121212", "121212", "0", "121212", "0", "121212", "0", "0", "0", "0", "121212", "0", "0", "121212", "0", "0", "0", "0", "0", "0", "0", "0", "0", "Lorem", "ipsum", "dolor", "sit", "amet", "aaaaa", "2", "0", "Low", "22322", "1212123", "121212", "121212", "0", "121212", "0", "121212", "0", "0", "0", "0", "121212", "0", "0", "121212", "0", "0", "0", "0", "0", "0", "0", "0", "0", "Mauris", "vestibulum", "leo", "id", "turpis", "imperdiet", "aaaaa", "2", "0", "High","Max", "22322", "1212123", "121212", "121212", "0", "121212", "0", "121212", "0", "0", "0", "0", "121212", "0", "0", "121212", "0", "0", "0", "0", "0", "0", …

需要的输出:

Lorem Ipsum is simply dummy,aaaaa,2,0,High Max,22322,1212123,121212,121212,0,121212,0,121212,0,0,0,0,121212,0,0,121212,0,0,0,0,0,0,0,0,0,Lorem ipsum dolor sit amet ,aaaaa,2,0,Low Min,22322,1212123,121212,121212,0,121212,0,121212,0,0,0,0,121212,0,0,121212,0,0,0,0,0,0,0,0,0,Mauris vestibulum leo id turpis imperdiet,aaaaa,2,0,High Min,22322,1212123,121212,121212,0,121212,0,121212,0,0,0,0,121212,0,0,121212,0,0,0,0,0,0,0,0,0,

Split 在字符串中找到的每个空格处添加逗号需要在 30 长度后获取逗号 这是在 0 之后和 Lorem ipsum http://prntscr.com/pzr0lt 之前它有很多行,比如 N 行输入

【问题讨论】:

  • 那么你想让所有N行合并成一行?
  • 我不知道你在这里真正想要什么。请添加适当的口头说明,说明您需要实现的目标。
  • 你的输出都是一行,如果超过30条怎么办?
  • @Luke 是的,我希望它进入 1 行,以便我可以在 30 后拼接它
  • @04FS 好吧,我有一个数据字符串,我输入并将其发送到存储值的 var 字符串,如果您看到屏幕截图,则 var newstring 拆分字符串并在每 30 个单词(数据)后添加逗号行尾时突出显示。

标签: javascript arrays regex split


【解决方案1】:

var string = $("#data_input").val();
var newstring = string.split(/\s?,|\n/g); // this is actually an array
$('#data_output').text(newstring.join(','))
textarea {
  width: 100%;
  height: 100px;
}

div {
  white-space: nowrap;
  overflow-x: scroll;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea id="data_input">Lorem Ipsum is simply dummy,aaaaa,2,0,High Max,22322,1212123,121212,121212,0,121212,0,121212,0,0,0,0,121212,0,0,121212,0,0,0,0,0,0,0,0,0
Lorem ipsum dolor sit amet ,aaaaa,2,0,Low Min ,22322,1212123,121212,121212,0,121212,0,121212,0,0,0,0,121212,0,0,121212,0,0,0,0,0,0,0,0,0
Mauris vestibulum leo id turpis imperdiet,aaaaa,2,0,High Min,22322,1212123,121212,121212,0,121212,0,121212,0,0,0,0,121212,0,0,121212,0,0,0,0,0,0,0,0,0</textarea>

Result
<div id="data_output"></div>

【讨论】:

  • $('#data_output').text(newstring.join(',')) 我怎样才能在字符串中输入这个?而不是附加或发送 data_output 。像 var newdatastring = newdstring.join(';');
  • var _array = string.split(/\s?,|\n/g); var _string = _array.join(',')
  • 为什么 thst _array & _string 会这样使用?只是不能使用 var array / var string ?
【解决方案2】:

类似的东西?

var str = Lorem Ipsum is simply dummy,aaaaa,2,0,High Max,22322 //...
var strEnd = str.slice(28).split(/[ ,]+/)
var strStart = str.slice(0,28)
var newStr = strStart + strEnd

您可以将切片更改为 30 而不是 28 的索引,这只是离开您需要将其拆分以获得您提到的输出的位置

【讨论】:

  • 这会将 High Max 拆分为 High,Max。如果那不是您将不得不添加更多拆分或其他内容的内容
  • 如果你能把它变成像 { Lorem Ipsum: [array], HIgh Max: [array] } 这样的对象格式,它可能会容易得多
猜你喜欢
  • 2020-05-16
  • 2014-12-13
  • 1970-01-01
  • 2019-09-09
  • 1970-01-01
  • 2012-04-22
  • 2012-09-22
  • 1970-01-01
  • 2011-12-15
相关资源
最近更新 更多