I am learning javascript and I am analyzing existing codes.
In my JS reference book, it says to search on a single space use \"\\s
\"?
But I have
No. It is perfectly legal to include a literal space in a regex.
However, it's not equivalent - \s
will include any whitespace character, including tabs, non-breaking spaces, half-width spaces and other characters, whereas a literal space will only match the regular space character.
The character class \s
does not just contain the space character but also other Unicode white space characters. \s
is equivalent to this character class:
[\t\n\v\f\r \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]
\s
matches any whitespace character, including tabs etc. Sure you can use a literal space also without problems. Just like you can use [0-9]
instead of \d
to denote any digit.
In addition to normal spaces, \s
matches different kinds of white space characters, including tabs (and possibly newline characters, according to configuration). That said, matching with a normal space is certainly valid, especially in your case where it seems you want to match a name, which is normally separated by a normal space.