简体   繁体   中英

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?

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]

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.

\\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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM