js - 如何在一行中写入 match() 的访问返回值



这个问题也适用于将数组作为值返回的其他函数。我以为我看到了一个简写代码:

var result = "12[abc]34".match(/([.*?])/);
alert(result[0]);

那么,有没有办法将 2 行合并为 1 并消除声明result的必要性?

试试这个

var result = ("12[abc]34".match(/([.*?])/) || [])[0];

如果match返回null则使用空数组[](因为如果我们在null中调用[],它将是错误的);

如果我们需要字符串结果,我们也可以使用附加条件

var result = ("12[abc]34".match(/([.*?])/) || [])[0] || '';

var result1 = ("12[abc]34".match(/([.*?])/) || [])[0];
console.log(result1);
var result = ("12[abc]34".match(/([.*?])/) || [])[0] || '';
console.log(result)

尝试

("12[abc]34".match(/([.*?])/))[0]
好吧,

只需[0]match()方法结果一起使用,如下所示:

alert("12[abc]34".match(/([.*?])/) ? "12[abc]34".match(/([.*?])/)[0] : "No match found");

给 --> [abc]

如果未找到匹配项,这将处理这种情况:

alert("1234".match(/([.*?])/) ? "12[abc]34".match(/([.*?])/)[0] : "No match found");

给出 --> 未找到匹配项

这是一个工作小提琴