javascript - 如何在javascript中多次分割字符串

标签 javascript string

我有一个文本文件,每一行都是一个字符串。

最极端的情况可能是这样的:

A01B01C01D100E500F100.00G100.00H100.00

有关可能性的一些信息:

  • 每个字符串将至少包含其中一个字母和一个数字
  • 字母后面的数字可以是小数点后任意位数和位数。
  • 字母并不总是按顺序排列

另一个数据示例:

A01B400C62.578D77.297
C62.409D77.222
C62.259D77.113
C62.135D76.975
C62.042D76.815
C61.985D76.638
C61.973D76.529
A03B10000
A0C62.760 D77.336
A0E3.000
A01F400E0
A01B400E-0.100

我想要做的是在每个字母处拆分字符串,并获取下一个字母之前的所有数字。结果如下:

A01, B01, C01, D100, E500, F100.00, G100.00, H100.00

我尝试了很多东西,最接近的是这个

dicedLine = myLine.split(/[ABCDEFGH]/)

这让我接近我想要的,除了我发现如果你有一个字符串在搜索中不包含这些字母之一,那么结果不是我想要的。

例如这样的一行:

A30

会给我这样的结果:

["", "30"]

我真正想要这样的结果:

["A30", "",  "",  "", "", "", "", ""]

任何想法都值得赞赏!

最佳答案

您可以使用positive lookahead断言特定字符存在,但不实际使用它:

codes = [
  "A01B400C62.578D77.297",
  "C62.409D77.222",
  "C62.259D77.113",
  "C62.135D76.975",
  "C62.042D76.815",
  "C61.985D76.638",
  "C61.973D76.529",
  "A03B10000",
  "A0C62.760 D77.336",
  "A0E3.000",
  "A01F400E0",
  "A01B400E-0.100",
];

console.log(codes.map(code => code.split(/ *(?=[A-Z])/)));

注意,我还添加了 * 来删除空格(如果有)。

关于javascript - 如何在javascript中多次分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44170535/

相关文章:

PHP 替换字符串

javascript - AngularJS Controller 中使用 as 语法的服务 promise

javascript - 内存和一些有关 JavaScript 的更多信息

java - trim.() 方法不起作用(java)

在C中将二进制字符串转换为int

java - 为什么空格在该分割指令中显示为子字符串?

javascript - Angular 2. 移除@HoSTListener()

javascript - 将自定义 Prop 添加到组件实例(不是通过父级)-react-data-grid

javascript - HTML Canvas 仅在浏览器调整大小后触发?

R:如何通过仅比较每个字符串中的前 3 个制表符分隔项来对两个字符串向量使用 setdiff?