分离:|

基线 广泛可用

此功能已得到很好的建立,可在许多设备和浏览器版本中使用。从那时起,它就可以跨浏览器使用了 2015年7月.

A类分离指定多个备选方案。任何与输入匹配的备选方案都会导致匹配整个析取。

语法

正则表达式
备选1 |备选2alternative1|alternative2|altervative3|…

参数

备选N

一种替代模式,由一系列原子和断言。成功匹配一个备选方案会导致匹配整个析取。

描述

这个|正则表达式运算符分隔两个或多个选择.模式首先尝试匹配第一个备选方案;如果失败,它会尝试匹配第二个,依此类推“a”而不是“ab”,因为第一个备选方案已经成功匹配:

js公司
/a | ab/.exec(“abc”);//【a】

这个|运算符在正则表达式中具有最低优先级。如果你想把析取作为更大模式的一部分,你必须它。

当分组析取后面有更多表达式时,匹配首先选择第一个替代项,然后尝试匹配正则表达式的其余部分。如果正则表达式的其余部分无法匹配,匹配器将尝试下一个替代项。例如,

js公司
/(:(a)|(ab))(?:(c)|(bc))/.exec(“abc”);//['abc','a',未定义,未定义//非[abc',undefined,'ab','c',undefined]

这是因为通过选择在第一个备选方案中,可以选择公元前在第二个备选方案中,结果是比赛成功。此过程称为回溯,因为匹配器首先超越析取,然后在后续匹配失败时返回。

还要注意,在不匹配的备选方案中捕获括号会产生未定义在结果数组中。

一个替代项可以是空的,在这种情况下,它与空字符串匹配(换句话说,总是匹配)。

无论匹配方向如何(在回头看).

示例

匹配的文件扩展名

下面的示例使用与输入边界断言文章:

js公司
函数isImage(文件名){返回/\。(?:png|jpe?g|webp|avif|gif)$/i.test(文件名);}isImage(“image.png”);//真的isImage(“image.jpg”);//真的isImage(“image.pdf”);//

规格

规范
ECMAScript语言规范
#触头分离

浏览器兼容性

BCD表仅在浏览器中加载

另请参见