Dennis D
Dennis D

Reputation: 1343

Javascript Regular Expression "Single Space Character"

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 came across the code

obj.match(/Kobe Bryant/);

Instead of using \s, it uses the actual space?

Why doesn't this generate an error?

Upvotes: 47

Views: 139106

Answers (5)

user1587368
user1587368

Reputation: 316

\xA0 is also a white space, especially a non-breaking space. We did have an issue with Quill Editor when we paste a plain text with spaces from notepad++. The white space in JS \xA0 is a white space but does not match a normal white space \u0020 (' ').

Upvotes: 0

Tatu Ulmanen
Tatu Ulmanen

Reputation: 124768

\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. However, keep in mind that [0-9] is equivalent to \d whereas the literal space is a subset of \s.

Upvotes: 10

Gumbo
Gumbo

Reputation: 655189

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]

Upvotes: 92

Hosam Aly
Hosam Aly

Reputation: 42443

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.

Upvotes: 4

SLaks
SLaks

Reputation: 887305

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.

Upvotes: 17

Related Questions