以下代码examines the content of inputData.body
for a 32-character string match,以及 - 据我所知 - 将任何匹配放在数组中。
// stores an array of any length (0 or more) with the matches
var matches = inputData.body.match(/\b[\w-]{32}\b/g)
// the .map function executes the nameless inner function once for each element of the array and returns a new array with the results
return matches.map(function (m) { return {str: m} })
我现在需要代码在没有匹配表达式的情况下返回某些东西,例如。字符串"false"
。
我无法让这个加入工作......
// stores an array of any length (0 or more) with the matches
var matches = inputData.body.match(/\b[\w-]{32}\b/g)
if (matches == null){
return 'false'
}
// the .map function executes the nameless inner function once for each element of the array and returns a new array with the results
return matches.map(function (m) { return {str: m} })
在空虚的情况下,我应该如何有条件地归还某些东西?
答案 0 :(得分:0)
调用者需要一个对象数组或一个对象(可能被视为该对象的数组)。所以返回一个对象。
if (matches == null) {
return { str: "false"; }
}
return matches.map(function (m) { return {str: m} });
或在一个声明中:
return matches == null ? { str: "false"; } : matches.map(function (m) { return {str: m} });
答案 1 :(得分:0)
调用者可能需要一个数组,如果没有匹配则该数组应为空数组。您不需要if
声明,只需执行此操作:
return (matches || []).map(function (m) { return {str: m} })
答案 2 :(得分:0)
要测试regEx是否与特定模式匹配,您应该使用返回true / false的test()
方法。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test