Javascript正则表达式"单空格字符"

Den*_*s D 29 javascript regex

我正在学习javascript,我正在分析现有的代码.

在我的JS参考书中,它说搜索单个空间使用" \s"?

但我遇到了代码

obj.match(/Kobe Bryant/);
Run Code Online (Sandbox Code Playgroud)

而不是使用\s,它使用实际空间?

为什么这不会产生错误?

Gum*_*mbo 69

字符类\s不仅包含空格字符,还包含其他Unicode空格字符.\s相当于这个字符类:

[\t\n\v\f\r \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]
Run Code Online (Sandbox Code Playgroud)

  • 对于任何编码数据的人来说,考虑“一个真正的空格字符,''和'任何空白用户可能发送给我'之间的区别是非常重要的。\s几乎总是你想要的,但要小心......如果您正在编码二进制数据,请确保仅匹配“空格键”`\u0020` (3认同)
  • +1,可能比其他人花了你更长的时间来获取链接:-) (2认同)

SLa*_*aks 7

不.在正则表达式中包含文字空间是完全合法的.

但是,它不是等价的 - \s将包括任何空白字符,包括制表符,不间断空格,半角空格和其他字符,而文字空间只匹配常规空格字符.


Tat*_*nen 6

\s匹配任何空白字符,包括制表符等.当然你也可以使用文字空间也没有问题.就像你可以使用[0-9]而不是\d表示任何数字.