我正在学习javascript,而我正在分析现有代码。
在我的JS参考书中,它说搜索单个空格使用“\s
”?
但我遇到了代码
obj.match(/Kobe Bryant/);
不是使用\s
,而是使用实际空间?
为什么不会产生错误?
答案 0 :(得分:64)
字符类\s
不仅包含空格字符,还包含其他Unicode white space characters。 \s
等同于此字符类:
[\t\n\v\f\r \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]
答案 1 :(得分:6)
没有。在正则表达式中包含文字空间是完全合法的。
但是,它不等同 - \s
将包含任何空白字符,包括制表符,不间断空格,半角空格和其他字符,而文字空间只匹配常规空格字符。
答案 2 :(得分:5)
\s
匹配任何空格字符,包括制表符等。当然,您也可以毫无问题地使用文字空间。就像您可以使用[0-9]
代替\d
来表示任何数字一样。
答案 3 :(得分:1)
除了普通空格之外,\s
还匹配不同类型的空格字符,包括标签(根据配置可能还有换行符)。也就是说,与普通空间匹配肯定是有效的,特别是在您希望匹配名称的情况下,通常由正常空格分隔。