2017-04-24 38 views
0

我正在看一看ViewerJS,看起来像是一个很好的合适的唯一的问题,我发现是标题出来%20而不是空间。我知道为什么,但我无法弄清楚如何解决它。ViewerJS str.replace如何使它工作

所以它看起来像这个代码得到工作第一。我如何修正它在这里,使其显示没有%20。

function getPDFFileNameFromURL(url) { 
var reURI = /^(?:([^:]+:)?\/\/[^\/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/; 
//   SCHEME  HOST   1.PATH 2.QUERY 3.REF 
// Pattern to get last matching NAME.pdf 
var reFilename = /[^\/?#=]+\.pdf\b(?!.*\.pdf\b)/i; 
var splitURI = reURI.exec(url); 
var suggestedFilename = reFilename.exec(splitURI[1]) || 
         reFilename.exec(splitURI[2]) || 
         reFilename.exec(splitURI[3]); 
if (suggestedFilename) { 
suggestedFilename = suggestedFilename[0]; 
if (suggestedFilename.indexOf('%') !== -1) { 
    // URL-encoded %2Fpath%2Fto%2Ffile.pdf should be file.pdf 
    try { 
    suggestedFilename = 
     reFilename.exec(decodeURIComponent(suggestedFilename))[0]; 
    } catch(e) { // Possible (extremely rare) errors: 
    // URIError "Malformed URI", e.g. for "%AA.pdf" 
    // TypeError "null has no properties", e.g. for "%2F.pdf" 
    } 
} 
} 
return suggestedFilename || 'document.pdf'; 
} 
+0

https://www.w3schools.com/jsref/jsref_replace.asp – Vbudo

+0

尝试decodeURIComponent(),https://www.w3schools.com/jsref/jsref_decodeuricomponent.asp –

+0

@ rackemup420你有没有尝试在他们的Github repo上发布一个问题https://github.com/kogmbh/ViewerJS? – Juniuz

回答

0
var x = 'Some%20string%20with%20spaces'; 
x = x.replace(/%20/g, ' '); 
console.log(x); 
+0

不起作用它打破了pdf查看器部分和标题没有格式化 – rackemup420