var query = {}
if(req.body.customerName) {
query = {$or:[{firstName:{$regex: req.body.customerName, $options: 'i'}},{lastName:{$regex: req.body.customerName, $options: 'i'}}]}
}
ModelName.find(query , function (err, data) {
if(error) {
// return error
}
//return data
});
输出:2
据我所知,数组长度应为1。 但它显示2。 有人可以解释一下。我在网上搜索过,但没有给出关于此的内容
答案 0 :(得分:12)
答案 1 :(得分:2)
perl split()
函数通过传递的正则表达式拆分字符串,并且它不会强制任何一方的字符串部分为非空。
此规则的唯一例外是当省略第三个参数(LIMIT)时 - 然后忽略任何尾随分隔符以及那些潜在的空字符串。这不适用于字符串的开头,即问题中的情况。
答案 2 :(得分:0)
模式定义分离感兴趣的元素。根据定义,如果您有分隔符,则必须分隔两个元素。更一般地说,你必须有一个项目而不是分隔符的数量。
你想要
$string =~ s/^#//; # Remove leading "#".
答案 3 :(得分:0)
它基于'#'拆分给定的字符串。由于字符串以#开头,因此第一个splitd元素将为空elemnt。第二个是汤姆。所以返回的长度是2。
@values = ('', 'Tom')