Javascript正则表达式;“单空格字符”;

Javascript正则表达式;“单空格字符”;,javascript,regex,Javascript,Regex,我正在学习javascript并分析现有代码 在我的JS参考书中,它说搜索单个空间使用“\s” 但我发现了密码 obj.match(/Kobe Bryant/); 它不使用\s,而是使用实际的空间 为什么这不会产生错误?否。在正则表达式中包含文字空格是完全合法的 但是,它不是等效的-\s将包括任何空白字符,包括制表符、非分隔符、半宽度空格和其他字符,而文本空格将仅与常规空格字符匹配。\s匹配任何空白字符,包括制表符等。确保您可以使用文字空间也没有问题。就像您可以使用[0-9]而不是\d来表示任

我正在学习javascript并分析现有代码

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

但我发现了密码

obj.match(/Kobe Bryant/);
它不使用
\s
,而是使用实际的空间


为什么这不会产生错误?

否。在正则表达式中包含文字空格是完全合法的


但是,它不是等效的-
\s
将包括任何空白字符,包括制表符、非分隔符、半宽度空格和其他字符,而文本空格将仅与常规空格字符匹配。

\s
匹配任何空白字符,包括制表符等。确保您可以使用文字空间也没有问题。就像您可以使用
[0-9]
而不是
\d
来表示任何数字一样。

除了普通空格之外,
\s
匹配不同类型的空白字符,包括制表符(根据配置,可能还有换行符)。这就是说,与普通空格匹配肯定是有效的,特别是在您希望匹配名称的情况下,名称通常由普通空格分隔。

字符类
\s
不仅包含空格字符,还包含其他字符<代码>\s相当于此字符类:

[\t\n\v\f\r \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]

+ 1,可能需要比其他人更长的时间来获取链接:-对于编码数据的任何人来说,考虑差异是非常重要的。“一个真正的空格字符”、“任何空格用户都可以发送给我”\s几乎总是你想要的,但要小心。。。如果要对二进制数据进行编码,请确保仅匹配“空格键”
\u0020
链接不再有效。你能更新一下吗?我真的很感兴趣。谢谢。对于JS正则表达式和处理
RegExp
对象,MDN RegExp页面是一个很好的资源: