【发布时间】:2014-06-28 14:04:24
【问题描述】:
我想知道是否有人对将字符代码数组转换为 Unicode 字符并使用正则表达式搜索它们有任何见解。
如果你有
var a = [0,1,2,3]
您可以使用循环将它们转换为 unicode 中前四个控制字符的字符串。
但是,如果你想创建一个正则表达式
"(X)+"
其中 X == 字符代码 3 转换为其 Unicode 等效项,搜索似乎永远不会工作。如果我检查字符串的长度,它是正确的,并且 .* 返回字符串中的所有字符。但是我在构建正则表达式来搜索字符串时遇到了困难,因为我必须从字符代码开始。有什么建议吗?
编辑:
var a = [0,1,2,3,0x111]; str = "";
for(var i = 0; i < a.length; i++) {
str += String.fromCharCode(a[i]);
}
var r = [0x111]
var reg = ""
reg += "(";
for(var i = 0; i < r.length; i++) {
var hex = r[i].toString(16);
reg += "\\x" + hex;
}
reg += ")";
var res = str.match(RegExp(reg))[0];
编辑
//Working code:
var a = [0,1,2,3,0x111];
str = "";
for(var i = 0; i < a.length; i++) {
str += String.fromCharCode(a[i]);
}
var r = [3,0x111]
var reg = ""
reg += "(";
for(var i = 0; i < r.length; i++) {
var hex = r[i].toString(16);
reg += ((hex.length > 2) ? "\\u" : "\\x") + ("0000" + hex).slice((hex.length > 2) ? -4 : -2);
}
reg += ")";
var res = str.match(RegExp(reg))[0];
【问题讨论】:
-
您能否仅发布几行代码示例来说明您正在尝试做什么——我们可以查看而不是猜测的最小示例?以目前的形式,这个问题很难回答。
-
我希望上面的编辑足以理解基本思想,尽管在实际应用中它会更加复杂。
标签: javascript regex unicode escaping character-codes