Mar*_*zek 48 javascript split delimiter
如何在不删除分隔符的情况下拆分字符串?
假设我有一个字符串:
var string = "abcdeabcde";
当我这样做时
var newstring = string.split("d"),我得到这样的东西:
["abc","eabc","e"]
但我想得到这个:
["abc","d","eabc","d","e"]
当我尝试做我的"split2"功能时,我把所有纠结在splice()和索引以及"this"vs"that"和...... aargh!救命!:d
Kai*_*Kai 48
尝试:
"abcdeabcde".split(/(d)/);
Run Code Online (Sandbox Code Playgroud)
Inf*_*ner 21
试试这个:
var string = "abcdeabcde";
var newstringreplaced = string.replace(/d/gi, ",d");
var newstring = newstringreplaced.split(",");
return newstring;
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
mic*_*cha 19
我喜欢Kai的答案,但它不完整.而是使用:
"abcdeabcde".split(/(?=d)/g) //-> ["abc", "deabc", "de"]
Run Code Online (Sandbox Code Playgroud)
这是在正则表达式中使用Lookahead Zero-Length Assertion,这使得匹配不是捕获组的一部分.不需要其他技巧或变通方法.
bob*_*nce 18
var parts= string.split('d');
for (var i= parts.length; i-->1;)
parts.splice(i, 0, 'd');
Run Code Online (Sandbox Code Playgroud)
(反向循环是必要的,以避免将ds 添加到已经d插入的列表部分.)
小智 8
可以在一行中完成:
var string = "abcdeabcde";
string.split(/(d)/);
["abc", "d", "eabc", "d", "e"]
Run Code Online (Sandbox Code Playgroud)
split - split用于创建不用于搜索的单独行.
[^ d] - 找到一组不包含"d"的子串
var str = "abcdeabcde";
str.match(/[^d]+|d/g) // ["abc", "d", "eabc", "d", "e"]
or
str.match(/[^d]+/g) // ["abc", "eabc", "e"]
or
str.match(/[^d]*/g) // ["abc", "", "eabc", "", "e", ""]
Run Code Online (Sandbox Code Playgroud)
如果您不想要"javascript"问题,请阅读"RegExp对象".
| 归档时间: |
|
| 查看次数: |
36871 次 |
| 最近记录: |