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

nszi6y05  于 2023-04-13  发布在  Java
关注(0)|答案(5)|浏览(180)

我正在学习javascript,并分析现有代码。
在我的JS参考书中,它说在单个空格上搜索使用“\s”?
但我发现了密码

obj.match(/Kobe Bryant/);

而不是使用\s,它使用实际的空间?
为什么这不会产生错误?

s2j5cfk0

s2j5cfk01#

字符类\s不仅包含空格字符,还包含其他Unicode白色字符。\s等效于以下字符类:

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

dxxyhpgq2#

不。在正则表达式中包含文字空格是完全法律的的。
然而,它并不等价-\s将包含任何空格字符,包括制表符,非中断空格,半角空格和其他字符,而文字空格将只匹配常规空格字符。

lfapxunr

lfapxunr3#

\s匹配任何空白字符,包括制表符等。当然,您可以使用文字空间也没有问题。就像您可以使用[0-9]而不是\d来表示任何数字。但是,请记住,[0-9]等效于\d,而文字空间是\s的子集。

kwvwclae

kwvwclae4#

除了普通空格,\s还匹配不同类型白色字符,包括制表符(根据配置,可能还包括换行符)。也就是说,匹配普通空格当然是有效的,特别是在您想要匹配通常由普通空格分隔的名称的情况下。

cnjp1d6j

cnjp1d6j5#

\xA0也是一个白色,尤其是一个非中断空格。当我们从notepad++粘贴一个带有空格的纯文本时,我们确实遇到了Quill Editor的问题。JS \xA0中的空格是一个空格,但与普通空格\u0020(' ')不匹配。

相关问题