这个问题也适用于将数组作为值返回的其他函数。我以为我看到了一个简写代码:
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");
给出 --> 未找到匹配项
这是一个工作小提琴。