JavaScript -删除所有字符串,但十六进制
JavaScript - Remove Everything from String But Hex
我试图改变textarea
中的值,使其只能包含十六进制数字。
例如,如果我在textarea
:
RMCP01
Mario Kart Wii
CCP items
* C27EF0EC 00000002
* 3FE08000 93BF1500
* 3BE00000 00000000
* 28345842 ff7f0080
* 8000000F 00000000
* 8000000E 00000001
* E0000000 00000000
* 28345842 fffb0004
* 8000000F 00000020
* 8000000E 00000001
* E0000000 00000000
* 28345842 fffd0002
* 8000000F 0000000B
* 8000000E 00000001
* E0000000 00000000
* 28345842 7fff8000
* 8000000F 00000009
* 8000000E 00000001
* E0000000 00000000
* 28345842 bfff4000
* 8000000F 00000004
* 8000000E 00000001
* E0000000 00000000
* 28345842 efff1000
* 8000000F 0000000E
* 8000000E 00000001
* E0000000 00000000
* 28345842 fbff0400
* 8000000F 0000000F
* 8000000E 00000001
* E0000000 00000000
* 28345842 fff70008
* 8000000F 00000007
* 8000000E 00000001
* E0000000 00000000
* 28345842 ffdf0020
* 8000000F 00000003
* 8000000E 00000001
* E0000000 00000000
* E2000001 00000000
* 48000000 809C1900
* DE000000 80008180
* 58010000 00000008
* DE000000 80008180
* 48100000 80001500
* DE000000 80008180
* 9421000F 0000008c
* 14000090 00000001
* E0000000 80008000
Connect Hacker
* 046592D8 3BA0270F
VR
* 28345842 ff7b0084
* 48000000 809BD748
* DE000000 90009380
* 5A010000 00009050
* 12000000 00008ae3
* E0000000 00000000
* 28345842 ddff2200
* 48000000 809BD748
* DE000000 90009380
* 5A010000 00009050
* 12000000 00000001
* E0000000 00000000
* 28345842 ff870078
* 48000000 809BD748
* DE000000 90009380
* 5A010000 00009050
* 12000000 00001388
* CC000000 00000000
* E0000000 80008000
RBC
* 045334B0 38000002
* 04533510 2C000003
Drift
* 048B5CC0 00000000
* 048B5CC4 00000000
* 048B5CC8 00010000
* 048B5B38 00010000
Invicibilty
* F6000001 80008100
* A88301A8 3BC00000
* 1400002C 60000000
* F6000001 80008100
* EC4300B2 C0630088
* D2000020 00000002
* 38000001 9803000A
* 80030008 00000000
* E0000000 80008000
BBB
283457E2 BFFE4001
048B59F8 43960000
E0000000 00000000
283457E2 BFFD4002
048B59F8 442F0000
E0000000 00000000
283457E2 FBEF0410
048B59F8 43110000
E0000000 00000000
283457E2 EBFF1400
048B59F8 40000000
E0000000 00000000
Deactivator
* 28348200 FEFF0100
* 8000000D 00000001
* 48000000 809C1900
* DE000000 80008180
* 58010000 00000008
* DE000000 80008180
* 4A100000 0000008C
* 30000000 00000014
* 14000000 00000014
* 14000004 00000000
* E0000000 00000000
* 28348200 FDFF0200
* 8000000D 00000000
* E0000000 80008000
结果是除了第一个字符以外的所有内容。(第一行改为"MCP01")这是我的代码:
function check() {
var c=$("#c").value;
c=c.replace(/[^A-Fa-f0-9]/, "");
return c;
}
怎么了?
您应该使用/g
标志来执行全局替换:-
c=c.replace(/[^A-Fa-f0-9]/g, "");
注意,这种方法可能会失败,因为在"ABRET"中,它只会替换R and T
,但ABE
不是一个有效的十六进制数字。
如果你想保持十六进制数字,那么你应该改变你的正则表达式为:-
/'b[0-9a-fA-F]{6}'b/g
上面的正则表达式只匹配Hex
位。因此,只需替换所有与上述模式不匹配的子字符串。剩下的交给你去实现。
你也可以将上面的正则表达式修改为:-
/'b[0-9A-F]{6}'b/gi
使用/i
标志,regex进行case-insensitive
匹配。所以,A
和a
是一样的
这些代码没有足够好,但他们是伟大的。下面是我最终使用的代码:
var c=$("c").val();
var newc="";
var counter=0;
var newcstack="";
for (var i=0; i<c.length; i++) {
if (c.charAt(i).match(/[A-Fa-f0-9]/)) {
newcstack+=c.charAt(i);
counter++;
if (counter==8) {
newc+=newcstack;
counter=0;
newcstack="";
}
}
else {
counter=0;
newcstack="";
}
}
return newc;
相关文章:
- 将十六进制字符串转换为字节数组
- JavaScript 中两个十六进制字符串的 XOR
- 在JavaScript/NodeJS中压缩十六进制字符串
- 不带编码的十六进制字符串
- 在 Javascript 中更轻松地处理十六进制字符串和十六进制值
- 从十六进制字符串中获取原始十六进制
- 实时颜色选择器 HSV 到十六进制字符串
- 如何将中文十六进制字符串解码为中文字符或JavaScript
- 在 JavaScript 中将原始图像的十六进制字符串转换为位图图像
- 用Javascript将大整数转换为十六进制字符串
- 将十六进制字符串转换为十六进制类型
- javascript中字节数组到十六进制字符串的转换
- ByteArray的十六进制字符串
- 如何从十六进制字符串构建二进制数组
- Meteor返回无效的十六进制字符串错误试图创建ObjectID
- 将十六进制字符串转换为javascript中的整数数组
- 相当于python's int('十六进制字符串',16)
- JavaScript中十六进制字符串到字节值的稳健转换
- 如何在js中将数字转换为十六进制字符串
- 如何将浮点数转换为JavaScript中的4byte十六进制字符串并返回