gpt4 book ai didi

javascript - 对原始二进制数据使用正则表达式

转载 作者:行者123 更新时间:2023-11-28 08:29:10 25 4
gpt4 key购买 nike

我将 JavaScript 嵌入到我的 C++ 应用程序中(通过 V8),并且获得了一些想要传递给 JavaScript 的原始二进制数据。现在,在 JavaScript 中,我计划对数据执行一些正则表达式。

当我的数据仅使用标准 JavaScript String 对象时,一切都非常简单。但是,据我了解,它使用 UTF16 表示形式,并期望数据是有效的 Unicode。但我有任意数据(可能包含 '\0' 和其他原始数据 - 尽管它大部分只是文本)。

我应该如何处理这个问题?我搜索了一下,也许 ArrayBuffer 或类似的东西是我需要存储原始数据的对象。但是,我没有找到如何对该对象执行常用的正则表达式方法。 (基本上我需要 RegExp.testRegExp.exec)。

<小时/>

我刚刚查看了 Node.js 代码,似乎它们支持二进制数据,只需通过 v8::String::NewFromOneByte 将其放入字符串中。请参阅herehere 。这样就可以回答我的问题(即,我可以只使用 String),不是吗?有什么缺点吗?

(我仍然不明白为什么我的问题很糟糕。请解释一下否决票。)

最佳答案

从我当前的所有测试来看,它似乎与普通 String 的预期效果一样。

您甚至可以直接在 JavaScript 中指定,例如

var s = "\x00\x01\x02\x03"

该字符串上的正则表达式按预期工作。

在 C++ 方面,如果您想将二进制数据放入 JS String 对象中:

v8::Local<v8::String> jsBinary(const uint8_t* data, uint32_t len) {
assert(int(len) >= 0);
return String::NewFromOneByte(v8::Isolate::GetCurrent(), data, String::kNormalString, len);
}

关于javascript - 对原始二进制数据使用正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22063219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com