Replace all whitespace characters
You want \s
Matches a single white space character, including space, tab, form feed, line feed.
Equivalent to
[ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]
in Firefox and [ \f\n\r\t\v]
in IE.
str = str.replace(/\s/g, "X");
\s
is a meta character that covers all white space. You don't need to make it case-insensitive — white space doesn't have case.
str.replace(/\s/g, "X")
We can also use this if we want to change all multiple joined blank spaces with a single character:
str.replace(/\s+/g,'X');
See it in action here: https://regex101.com/r/d9d53G/1
Explanation
/
\s+
/ g
-
\s+
matches any whitespace character (equal to[\r\n\t\f\v ]
) -
+
Quantifier — Matches between one and unlimited times, as many times as possible, giving back as needed (greedy)
-
Global pattern flags
- g modifier: global. All matches (don't return after first match)
Have you tried the \s
?
str.replace(/\s/g, "X");