我如何检查它是否是12字节的String对象,mongodb中的ObjectID?

Cup*_*k05 2 javascript regex string mongodb node.js

我想检查正确的 ObjectID 以继续我的代码。我在 NodeJS 上,我不想收到错误:

错误:传入的参数必须是 12 个字节的单个字符串或 24 个十六进制字符的字符串

实际上我得到了这些测试:

if (!user.id || !user.id.match("/^[0-9a-fA-f]{24}$") || !typeof(user.id) === 'string') {
        console.log("user id is required !")
        return callback("user id is required !")
    }
Run Code Online (Sandbox Code Playgroud)

对于 24 个十六进制字符的字符串,我得到了这个正则表达式:

!user.id.match("/^[0-9a-fA-f]{24}$")
Run Code Online (Sandbox Code Playgroud)

我正在搜索检查它是否是一个 12 字节的字符串:

!typeof(user.id) === 'string'
Run Code Online (Sandbox Code Playgroud)

我应该如何添加12字节的验证?

有什么想法吗?

Cup*_*k05 8

如果您使用的是 NodeJS:

const objectID = require('mongodb').objectID
Run Code Online (Sandbox Code Playgroud)

您可以像这样简单地测试您的 ObjectID:

ObjectID.isValid(yourobjectid)
Run Code Online (Sandbox Code Playgroud)

如果有效则返回 true,无效则返回 false。