你知道(^|\s)
下面表达式中的目的吗?
/(^|\s)(apple|orange|lemon)(\s|$)/.test(foo);
(^|\s)
匹配字符串的开头或空白字符。
因此,如果字符串显示“apple it is”或“I want an apple”,它将匹配。
请注意,在第一种情况下,它将匹配“apple”,在第二种情况下,它将匹配“apple”。
注意匹配的额外空间。如果不需要该行为,则应使用单词边界(由 给出\b
)。
例如:
/\b(apple|orange|lemon)\b/
这将允许所有匹配的苹果完全匹配“苹果”(而不是“苹果”或其他变体)。
表示字符串开头 ( ^
)或空格字符 ( \s
)。
所以它应该在以下情况下匹配:"apple"
, " apple"
.
这意味着正则表达式匹配以空格 ( ) 开头的字符串 ( )^
或 ( |
) 的其他内容(正则表达式的其余部分)的开头\s