I have a string, which contains multiple white spaces. I want to split it by only first 2 white spaces.
224 Brandywine Court Fairfield, CA 94533
output
["224", "Brandywine", "Court Fairfield, CA 94533"]
3 Answers 3
const str ="224 Brandywine Court Fairfield, CA 94533";
const arr = str.split(" ");
const array = arr.slice(0, 2).concat(arr.slice(2).join(" "));
console.log(array);
You can do it with split and slice functions.
answered Apr 28, 2019 at 18:17
JayJamesJay
6234 silver badges8 bronze badges
Here is how I might do it.
const s = "224 Brandywine Court Fairfield, CA 94533";
function splitFirst(s, by, n = 1){
const splat = s.split(by);
const first = splat.slice(0,n);
const last = splat.slice(n).join(by);
if(last) return [...first, last];
return first;
}
console.log(splitFirst(s, " ", 2));
answered Apr 28, 2019 at 18:24
George
2,4203 gold badges19 silver badges39 bronze badges
1 Comment
tomen
Your code works but I just want to see if there is a shorter way to achieve it. Still many thanks.
If you only care about the space character (and not tabs or other whitespace characters) and only care about everything before the second space and everything after the second space, you can do it:
let str = `224 Brandywine Court Fairfield, CA 94533`;
let firstWords = str.split(' ', 2);
let otherWords = str.substring(str.indexOf(' ', str.indexOf(' ') + 1));
let result = [...firstWords, otherWords];
answered Apr 28, 2019 at 18:32
StepUp
38.5k16 gold badges95 silver badges159 bronze badges
1 Comment
tomen
Your code gives me back : [ "224", "Brandywine", "randywine Court Fairfield CA 94533" ]
lang-js
.match(/(\S+)\s+(\S+)\s+(.+)/).slice(1)