javascript - 通过JS测试函数进行十六进制搜索并用一些值替换

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

最佳答案

您的 [\x00-\x1f\x22\x5c] regex将 ASCII 字符与来自 00 的十六进制代码进行匹配直到1F (控制字符)以及 225C字符(分别为 "\)。

如果您打算匹配字符串,例如 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , a , b , c , d , e , f , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 1‌​8 , 19 , 1a , 1b , 1c , 1d , 1e ,‌​1f , 22 , 5c使用

/22|5c|1?[0-9a-f]/gi

请参阅regex demo .

详细信息:

  • 22 -22
  • | - 或
  • 5c -5c
  • | - 或
  • 1?[0-9a-f] - 可选(1或0次)1后跟 a 中的任何数字或字母直到f .

function test_replace(str) {
    var patrn = /22|5c|1?[0-9a-f]/gi;
    return str.replace(patrn, 'hex');
 }

console.log(test_replace('22:03705081:Xx1aB5c'));

关于javascript - 通过JS测试函数进行十六进制搜索并用一些值替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43516938/

相关文章:

javascript - 带有 contenteditable 的 TinyMCE

java - 简单的正则表达式匹配

java - 使用java中的正则表达式从无效/部分xml中提取值

正则表达式:返回括号内的字符

python - 版本和软件名称的正则表达式

javascript - Express Router 读取两个不同的动态路由相同

javascript - 如何防止按 Enter 时提交表单

javascript - jquery.cookie.js mod_security 错误 406 和问号

regex - 正则表达式: match any word until first space

javascript - 使用两个工厂 AngularJS