Concat数组值

时间:2019-01-18 15:56:52

标签: javascript arrays regex

我有这个字符串:

 <input inputmode="numeric" pattern="[0-9]*" type="text" name="something">

我想得到:

Item 1Item 2Item 3Item 4

我试图这样做:

["Item 1", "Item 2", "Item 3", "Item 4"]

但这不起作用,知道如何获得预期的结果吗?

编辑:

max的字符串可能像这样:

var string = 'Item 1Item 2Item 3Item 4'
var regex = string.split(/(\d)/)
regex.splice(-1, 1)
regex[regex.length - 2] += regex[regex.length - 1];
regex.splice(-1, 1)
console.log(regex);

4 个答案:

答案 0 :(得分:9)

注意:答案适用于原始情况-更新之前

使用String.match()查找以数字序列(regex101)结尾的非数字序列:

spring:    
  application:    
    your-application-name
  [other global application settings]    
  ...   

---
spring:
    profiles: dev    
[other settings which apply only to dev environment]


---
spring:
    profiles: prod
[all production settings (will overwrite other values if present]

答案 1 :(得分:4)

当您在正则表达式中有捕获组(signature_id exceptionmessage count b1det422 Cannot read property 'get' of undefined Stack 31,321 330ope77 Unauthorized access response for many users 1,207 53m6m466 Reference cannot be set to an empty.object.3 311 )并传递给(...)时,捕获的文本将作为结果的一部分返回。这就是为什么在.split之间有"1""2"等的原因。

除了@Ori Dori's solution的某些变体之外,您还可以使用lookahead assertion "Item "(这是一种非捕获构造)来解决此问题。

(?=...)

这将通过在出现文本var string = 'Item 1Item 2Item 3Item 4Item NItem N-1'; var arr = string.split(/(?=Item)/); console.log(arr);之前立即将字符串分开而起作用。


对于完全不使用正则表达式的强力解决方案:

"Item"

答案 2 :(得分:2)

如果您的elements始终以单词Item开头,则可以使用split()做类似的事情:

const str = 'Item 1Item 2Item 3Item 4Item N-2Item N-1Item N'
var arr = str.split("I").slice(1).map(x => "I" + x);
console.log(arr);

更好,或者您可以使用match()

使用单个正则表达式来实现

const str = 'Item 1Item 2Item 3Item 4Item 999Item N-2Item N-1Item N'
var arr = str.match(/Item\s[1-9|N|-]+/g);
console.log(arr);

答案 3 :(得分:0)

要获得预期结果,请在下面的选项中使用replace,split和slice

  1. 在使用“替换”的“我”之前添加双倍空格
  2. 使用split('')按双倍空格分割
  3. 使用slice(1)删除第一个空字符串

var str = "Item 1Item 2Item 3Item 4Item NItem N-1"

let arr = str.replace(/\I/g, '  I').split('  ').slice(1);

console.log(arr)

codepen-https://codepen.io/nagasai/pen/qLzKwJ?editors=1010