通过JS测试函数进行十六进制搜索并将其替换为某个值

时间:2017-04-20 10:27:57

标签: javascript regex

我正在尝试使用十六进制正则表达式模式来识别和替换字符串中具有某个固定值的十六进制值。但它既没有用测试功能识别它也没有取代它。根据我的需要,正则表达式模式似乎没问题。请指教。

 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();

1 个答案:

答案 0 :(得分:0)

您的[\x00-\x1f\x22\x5c] regex与来自001F(控制字符)以及225C字符({{1}的十六进制代码的ASCII字符相匹配分别是}和"

如果您计划匹配字符串,例如\0123,{{1 }},456789abcdef10111213,{ {1}},141516171‌​8191a,{{1 },1b1c1d使用

1e

请参阅regex demo

<强>详情:

  • ​1f - 22
  • 5c - 或
  • /22|5c|1?[0-9a-f]/gi - 22
  • 22 - 或
  • | - 一个可选的(1或0次)5c,后跟5c|的任何数字或字母。

&#13;
&#13;
1?[0-9a-f]
&#13;
&#13;
&#13;