Javascript 使用正则表达式比较mongodb中的车辆编号

Javascript 使用正则表达式比较mongodb中的车辆编号,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我有一个场景,我想比较数据库中的车辆编号。 如果输入的数字是KA03ME0101,我将只从字符串中选取第三、第四和第七个直到最后一个元素的数字,并在数据库中对其进行比较,我希望在数据库中应用正则表达式对数字执行相同的操作并进行比较。 现在我将它存储为字符串 vehicle_number : { type : String }, 现在,这个查询对我来说就是这样 bookingSchema.statics.findBookingByVehicleNo = functio

我有一个场景,我想比较数据库中的车辆编号。 如果输入的数字是KA03ME0101,我将只从字符串中选取第三、第四和第七个直到最后一个元素的数字,并在数据库中对其进行比较,我希望在数据库中应用正则表达式对数字执行相同的操作并进行比较。 现在我将它存储为字符串

   vehicle_number : {
   type : String
    },
现在,这个查询对我来说就是这样

    bookingSchema.statics.findBookingByVehicleNo = function(params, callback){
    return this.findOne({
        '$and' : [
            { 'booking_status' : { '$eq' : 'checked_in' }},
            { 'vehicle_number' : params.vehicle_number   }
        ]
    }).exec(callback);
}
假设车辆编号为`KA03ME0101,我想写一个查询,在这里我只能比较不包括KAME的数字,并且只提取030101的数字。 因此,跳过前两个单词,然后选择第三个和第四个数字,然后跳过第五个和第六个,然后选择剩余的数字。 从用户端,我将以相同的方式提取数字,然后进行比较。
如何应用正则表达式来实现此目的任何潜在客户都会很有帮助,谢谢。

您可以在此处使用正则表达式:

对于您的情况,您只想查看数字,因此只需删除非数字并进行比较即可:

var板=[
‘KA03ME0101’,
‘AK03EM0101’
];
var regularExpression=/\D/ig;
对于(var indexA=0;indexA}
您只需从参数中提取数字并使用它进行查询。 因此,在您的示例中,
params.vehicle\u number.match(/\d+/g).join(“”)
将为您提供
030101
。因此,您的查询应如下所示:

'$and' : [
            { 'booking_status' : { '$eq' : 'checked_in' }},
            { 'vehicle_number' :params.vehicle_number.match(/\d+/g).join('')   }
        ]