我正在使用条码扫描仪读取我网站上的条码(该网站是在 OpenUI5 中制作的)。
扫描仪的工作方式类似于键盘,可以键入它读取的字符。在输入的结尾和开头,它使用一个特殊字符。对于每种类型的扫描仪,这些字符都不同。
一些可能的字符是:
- █
- ▄
- -
- —
在我的代码中,我使用 if (oModelScanner.oData.scanning && oEvent.key == "\u2584")
检查扫描仪的输入是否为 ▄。
有什么方法可以从\uHHHH 样式的字符中获取代码吗? (HHHH为字符的十六进制编码)
我尝试了 charCodeAt但这会返回十进制代码。
随着codePointAt examples他们将我需要的代码变成了十进制代码,所以我需要将其反转。
最佳答案
Javascript 字符串有一个方法 codePointAt它为您提供了代表 Unicode 点值的整数。如果您希望将整数格式化为四位十六进制数字序列(如 Nikolay Spasov 的响应),则需要使用该数字的 16 进制(十六进制)表示。
var hex = "▄".codePointAt(0).toString(16);
var result = "\\u" + "0000".substring(0, 4 - hex.length) + hex;
但是,如果您输入的代码点整数与预期的代码点匹配,直接检查可能会更容易
oEvent.key.codePointAt(0) === '▄'.codePointAt(0);
请注意,“符号相等”实际上可能更棘手:一些符号由代理项对定义(您可以将其视为定义为四个十六进制数字序列的两半的组合)。
出于这个原因,我建议使用专门的库。
您会在 relevant article by Mathias Bynens 中找到更多详细信息
关于javascript - 如何在 Javascript 中获取字符的 Unicode 代码点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48009201/