How to split string by whitespace javascript

I would like to split a String but I would like to keep white space like:

var str = "my car is red";

var stringArray [];

stringArray [0] = "my";
stringArray [1] = " ";
stringArray [2] = "car";
stringArray [3] = " ";
stringArray [4] = "is";
stringArray [5] = " ";
stringArray [6] = "red";

How I can proceed to do that?

Thanks !

asked Oct 17, 2014 at 13:02

Using regex:

var str   = "my car is red";
var stringArray = str.split(/(\s+)/);

console.log(stringArray); // ["my", " ", "car", " ", "is", " ", "red"] 

\s matches any character that is a whitespace, adding the plus makes it greedy, matching a group starting with characters and ending with whitespace, and the next group starts when there is a character after the whitespace etc.

answered Oct 17, 2014 at 13:06

How to split string by whitespace javascript

chridamchridam

97k21 gold badges223 silver badges227 bronze badges

5

You could split the string on the whitespace and then re-add it, since you know its in between every one of the entries.

var string = "text to split";
    string = string.split(" ");
var stringArray = new Array();
for(var i =0; i < string.length; i++){
    stringArray.push(string[i]);
    if(i != string.length-1){
        stringArray.push(" ");
    }
}

Update: Removed trailing space.

answered Oct 17, 2014 at 13:04

How to split string by whitespace javascript

somethingheresomethinghere

15.6k2 gold badges27 silver badges42 bronze badges

3

For split string by space like in Python lang, can be used:

var w = "hello    my brothers    ;";
w.split(/(\s+)/).filter( function(e) { return e.trim().length > 0; } );

output:

["hello", "my", "brothers", ";"]

or similar:

w.split(/(\s+)/).filter( e => e.trim().length > 0)

(output some)

answered Sep 21, 2016 at 22:36

iqmakeriqmaker

2,05324 silver badges22 bronze badges

2

You can just split on the word boundary using \b. See MDN

"\b: Matches a zero-width word boundary, such as between a letter and a space."

You should also make sure it is followed by whitespace \s. so that strings like "My car isn't red" still work:

var stringArray = str.split(/\b(\s)/);

The initial \b is required to take multiple spaces into account, e.g. my car is red

EDIT: Added grouping

answered Oct 17, 2014 at 13:07

RhumborlRhumborl

16k4 gold badges36 silver badges45 bronze badges

2

Although this is not supported by all browsers, if you use capturing parentheses inside your regular expression then the captured input is spliced into the result.

If separator is a regular expression that contains capturing parentheses, then each time separator is matched, the results (including any undefined results) of the capturing parentheses are spliced into the output array. [reference)

So:

var stringArray = str.split(/(\s+)/);
                             ^   ^
//

Output:

["my", " ", "car", " ", "is", " ", "red"]

This collapses consecutive spaces in the original input, but otherwise I can't think of any pitfalls.

answered Oct 17, 2014 at 13:13

How to split string by whitespace javascript

In case you're sure you have only one space between two words, you can use this one

str.replace(/\s+/g, ' ').split(' ')

so you replace one space by two, the split by space

answered Oct 26, 2020 at 11:32

str.split(' ').join('§ §').split('§');

answered Jul 11, 2016 at 20:40

EsgerEsger

1,12911 silver badges17 bronze badges

How do you split a string in white space?

You can split a String by whitespaces or tabs in Java by using the split() method of java. lang. String class. This method accepts a regular expression and you can pass a regex matching with whitespace to split the String where words are separated by spaces.

How do I split a space in JavaScript?

To split a string keeping the whitespace, call the split() method passing it the following regular expression - /(\s+)/ . The regular expression uses a capturing group to preserve the whitespace when splitting the string.

Can we split string in JavaScript?

The split() method splits a string into an array of substrings. The split() method returns the new array. The split() method does not change the original string. If (" ") is used as separator, the string is split between words.

Which JavaScript method is used to break a string on a character or whitespace?

str. split() method is used to split the given string into array of strings by separating it into substrings using a specified separator provided in the argument. separator: It is used to specified the character, or the regular expression, to use for splitting the string.