Abs*_*ner -1 javascript regex split substring
有这样的字符串
str = "word 12 otherword(s) 2000 19"
Run Code Online (Sandbox Code Playgroud)
或者像这样
str = "word word 12 otherword(s) 2000 19"
Run Code Online (Sandbox Code Playgroud)
我需要将字符串一分为二,以获得这样的数组:
newstr[0] = first part of the string (即第一种情况下的“word”,第二种情况下的“word word”);
newstr[1] = rest of the string (即“12 otherword(s) 2000 19”在这两种情况下)。
我尝试使用splitand完成此操作regex,但没有成功:
str.split(/\d.*/)返回Array [ "word ", "" ]或Array [ "word word ", "" ]
而str.split(/^\D*/gm)返回Array [ "", "12 otherword(s) 2000 19" ]
你能给我一个建议吗?即使不使用splitand regex- 如果有更好/更快的(Vanilla JavaScript)解决方案。
这里发生了 3 件事。
String.split 通常不会在返回数组中包含匹配的分隔符。所以分裂abc.split('b')会回来['a', 'c']。可以通过使用匹配的正则表达式组来更改此行为;即添加括号'abc'.split(/(b)/)将返回['a', 'b', 'c']。
String.split 将使分隔符与其他元素分开。即'abc'.split(/(b)/)会返回3个元素['a', 'b', 'c']。后缀正则表达式.*以组合最后两个元素:'abc'.split(/(b.*)/)将返回['a', 'bc', '']。
最后,为了忽略最后一个空元素,我们发送2.
let str = "word word 12 otherword(s) 2000 19";
let splitStr = str.split(/(\d.*)/, 2);
console.log(splitStr);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
112 次 |
| 最近记录: |