如何只拆分一次字符串,即1|Ceci n'est pas une pipe: | Oui解析为:["1", "Ceci n'est pas une pipe: | Oui"]?
分裂的限制似乎没有帮助......
yar*_*sca 103
你想String.indexOf('|')用来获得第一次出现'|'的索引.
var i = s.indexOf('|');
var splits = [s.slice(0,i), s.slice(i+1)];
Run Code Online (Sandbox Code Playgroud)
Nic*_*ver 74
这不是一个很好的方法,但效果不错:
var string = "1|Ceci n'est pas une pipe: | Oui";
var components = string.split('|');
alert([components.shift(), components.join('|')]?);?????
Run Code Online (Sandbox Code Playgroud)
Mat*_*hen 14
您可以使用:
var splits = str.match(/([^|]*)\|(.*)/);
splits.shift();
Run Code Online (Sandbox Code Playgroud)
正则表达式将字符串拆分为两个匹配的组(括号),第一个|前面的文本 以及后面的文字.然后,我们shift将结果去掉整个字符串match(splits[0]).
and*_*sit 11
ES6 语法允许采用不同的方法:
function splitOnce(s, on) {
[first, ...rest] = s.split(on)
return [first, rest.length > 0? rest.join(on) : null]
}
Run Code Online (Sandbox Code Playgroud)
它还|通过返回 null 而不是空字符串来处理没有 a 的字符串的可能性,这是更明确的。
splitOnce("1|Ceci n'est pas une pipe: | Oui", "|")
>>> ["1", "Ceci n'est pas une pipe: | Oui"]
splitOnce("Celui-ci n'a pas de pipe symbol!", "|")
>>> ["Celui-ci n'a pas de pipe symbol!", null]
Run Code Online (Sandbox Code Playgroud)
管道?C'est null!
我添加了这个回复主要是为了我可以在管道符号上打个双关语,但也为了炫耀 es6 语法 - 令人惊讶的是有多少人仍然不使用它......
一个班轮和imo,更简单:
var str = 'I | am super | cool | yea!';
str.split('|').slice(1).join('|');
Run Code Online (Sandbox Code Playgroud)
这回归"am super | cool | yea!"
| 归档时间: |
|
| 查看次数: |
33072 次 |
| 最近记录: |