javascript - MongoDB ObjectID 的正则表达式

标签 javascript regex mongodb

引用 this SO question,我有一个场景,我只需要匹配一个包含 a-f 的十六进制字符串。其他一切都不应该匹配。示例:

checkForHexRegExp.test("112345679065574883030833"); // => false
checkForHexRegExp.test("FFFFFFFFFFFFFFFFFFFFFFFF"); // => false
checkForHexRegExp.test("45cbc4a0e4123f6920000002"); // => true

我的用例是我正在使用一组十六进制字符串,并且只想将那些是 mongodb objectID 的字符串验证为 true。

最佳答案

你可以使用下面的正则表达式但是不太好用

checkForHexRegExp = /^(?=[a-f\d]{24}$)(\d+[a-f]|[a-f]+\d)/i

例子:

> checkForHexRegExp.test("112345679065574883030833")
false
> checkForHexRegExp.test("FFFFFFFFFFFFFFFFFFFFFFFF")
false
> checkForHexRegExp.test("45cbc4a0e4123f6920000002")
true

但是,正如我评论的那样,112345679065574883030833FFFFFFFFFFFFFFFFFFFFFFFF 也是有效的十六进制表示。

您应该使用 /^[a-f\d]{24}$/i,因为它通过了上述所有测试

关于javascript - MongoDB ObjectID 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20988446/

相关文章:

javascript - 将 api.ai 聊天机器人添加到我的 Meteor.js 聊天应用程序

javascript - 如何判断一个对象是否包含在数组中?

regex - 为什么Golang中的这个正则表达式是非贪婪的?

php - PHP-从User-Agent获取确切的iOS版本

java - Mongo的自增功能无法设置Long为_id?

javascript - 服务器逐渐失去与 MongoDB 的连接,直到根本无法连接

javascript - 克隆时将数据记录到正确的 html 子元素

javascript - 使用react-dnd使组件可拖动

JavaScript 正则表达式匹配文本字段中的 URL

node.js - MongoDb findone() 结果返回 null