2016-02-12 171 views
-2

你好,我想更换十六进制结果ASCII字符JavaScript的十六进制ASCII字符的正则表达式替换

我尝试这一点,但icant做

output.content = decodeResults[0].content.replace("%3C0xc5%3E%3C0x9f%3C%3E", "asd"); 

我的字符的十六进制代码是< 0xc5> < 0x9f>

默认代码

// Default script for data formatting 
function onResult (decodeResults, readerProperties, output) 
{ 
    if (decodeResults[0].decoded) 
    { 
     output.content = decodeResults[0].content; 
    } 
} 
+0

如果你的意思是你想unescape,请尝试'unescape','decodeURI'或'decodeURIComponent'。 – Oriol

+0

它来自条形码阅读器。我想写一个脚本给条码阅读器。 –

回答

-1

你知道decodeResults [0] .content的格式吗?您的替换语句建议使用URL编码的字符串。 JavaScript替换并不特别关注这种类型的编码,它将输入作为一系列字符来处理。

此输入: '< 0xc5> < 0x9f>' 我建议逃脱<和>字符:

.replace('\<0xc5\>\<0x9f\>', 'asd') 

检查它在我的jsfiddle创建:JSFiddle for replace

0

我发现它

function onResult (decodeResults, readerProperties, output) 
{ 
    if(decodeResults.toString) 
    { 
     var OkunanBarkod = decodeResults[0].content; 

      while(OkunanBarkod.match('\xc5') && OkunanBarkod.match('\x9f') && (OkunanBarkod.indexOf('\xc5') == (OkunanBarkod.indexOf('\x9f')-1))) 
      {  
       OkunanBarkod = OkunanBarkod.replace('\xc5', 's'); 

       OkunanBarkod = OkunanBarkod.replace('\x9f', '');    
      } 

      while(OkunanBarkod.match('\xc3') && OkunanBarkod.match('\xb6') && (OkunanBarkod.indexOf('\xc3') == (OkunanBarkod.indexOf('\xb6') - 1))) 
      {  
       OkunanBarkod = OkunanBarkod.replace('\xc3', 'o'); 

       OkunanBarkod = OkunanBarkod.replace('\xb6', '');    
      } 



      output.content = OkunanBarkod; 

    } 
    else{ 
     output.content = "no"; 
    } 

但我找不到解决方案显示它为“ş”字符。

相关问题