我一直在进行nodeschool的正则表达式冒险,我刚刚完成了捕获课程。
我的解决方案:
module.exports = function (str) {
var x = /x=(\d+)/.exec(str);
return x && x[1];
}
然而,参考解决方案
module.exports = function (str) {
var x = /x=(\d+)/.exec(str);
return x ? x[1] : null;
}
我真的很好奇最后一行意味着什么。
x
零次或一次x[1]
但我不知道: null;
在这种情况下的含义。这是否意味着“if not null”?
答案 0 :(得分:1)
(condition ? expressionIfConditionIsTrue : expressionIfConditionIsFalse)
这是
的捷径if (expression) {
// expressionIfConditionIsTrue
} else {
// expressionIfConditionIsFalse
}
因此,如果正则表达式找到匹配项,则返回x[1]
,否则,函数返回null
。
答案 1 :(得分:1)
您是否听说过三元运营商?
语法:
condition ? true : false
所以在这里,
return x ? x[1] : null;
如果匹配,则应返回由组索引1提取的字符,否则应返回null。