我正在尝试使用十六进制正则表达式模式来识别和替换字符串中具有某个固定值的十六进制值。但它既没有用测试功能识别它也没有取代它。根据我的需要,正则表达式模式似乎没问题。请指教。
function test_replace() {
var str = '22:03705081:Xx1aB5c';
var patrn = /[\x00-\x1f\x22\x5c]/g;
if (patrn.test(str))
return str.replace(patrn, 'hexa')
else
return str
}
test_replace();
答案 0 :(得分:0)
您的[\x00-\x1f\x22\x5c]
regex与来自00
至1F
(控制字符)以及22
和5C
字符({{1}的十六进制代码的ASCII字符相匹配分别是}和"
。
如果您计划匹配字符串,例如\
,0
,1
,2
,3
,{{1 }},4
,5
,6
,7
,8
,9
,a
,b
,c
,d
,e
,f
,10
,11
,12
,13
,{ {1}},14
,15
,16
,17
,18
,19
,1a
,{{1 },1b
,1c
,1d
使用
1e
请参阅regex demo。
<强>详情:
1f
- 22
5c
- 或/22|5c|1?[0-9a-f]/gi
- 22
22
- 或|
- 一个可选的(1或0次)5c
,后跟5c
到|
的任何数字或字母。
1?[0-9a-f]
&#13;