Javascript:测试regex并赋值给变量,如果它在一行中匹配

Javascript: test regex and assign to variable if it matches in one line

本文关键字:一行 如果 regex 测试 赋值 变量 Javascript      更新时间:2023-09-26

测试一个正则表达式是否匹配,如果匹配则赋值给一个变量,如果不匹配则赋值给一个默认值。我目前正在做以下事情:

var test = someString.match(/some_regex/gi);
var result = (test) ? test[0] : 'default_value';

我想知道是否有任何方法可以用一行代码在JS中做同样的事情。

澄清:我不是想让我的代码更小,而是让它更清晰,在我定义了一些变量的地方,像这样:

var foo = 'bar',
    foo2 = 'bar2',
    foo_regex = %I want just one line here to test and assign a regex evaluation result%

您可以使用OR运算符(||):

var result = (someString.match(/some_regex/gi) || ['default_value'])[0];

如果操作数为真,则返回第一个操作数,否则返回第二个操作数。因此,如果someString.match(/some_regex/gi)是假的(即不匹配),它将使用['default_value']代替。

例如,如果您想提取第二个捕获组,那么

可能会变得有点粗糙。在这种情况下,您仍然可以在初始化多个变量时干净地执行此操作:

var foo = 'bar',
    foo2 = 'bar2',
    test = someString.match(/some_regex/gi),
    result = test ? test[0] : 'default_value';