2017-07-07 15 views
0

我想使用javascript在HTML文件中删除或替换此字符串。替换具有不断变化的动态版本号的脚本标记

'<script src="../assets/js/somejs.js?1.0.953"></script>' 

麻烦的是,版本号“1.0.953”总是在变化,所以我不能用一个简单的与string.replace

+1

应该在客户端JS或服务器端JS做什么? –

+0

你可以删除后的所有字符?符号 – Vineesh

+0

它是使用节点构建系统的一部分。是的,我想要所有的角色?到与最初的替换字符串一起删除的关闭脚本标记。 –

回答

0

确定这是混乱的,但它的工作原理...

String.prototype.replaceAnyVersionOfScript = function(target, replacement) { 

    // 1. Build the string we need to replace (target + xxx + ></script>) 
    var targetLength = target.length; 
    var targetStartPos = this.indexOf(target); 
    var dynamicStartPos = targetStartPos + targetLength; 
    var dynamicEndPos = this.indexOf('></script>', dynamicStartPos) + 10; 
    var dynamicString = this.substring(dynamicStartPos, dynamicEndPos); 
    var dymamicStringToReplace = target + dynamicString; 

    // 2. Now we know what we are looking for. We can replace it.   
    return this.replace(dymamicStringToReplace, replacement); 

}; 

shellHTML = shellHTML.replaceAnyVersionOfScript('<script src="./assets/js/CloudZoom.js', ''); 
0

你可以做到这一点使用下面的正则表达式:

\?.*?\" 

或更具体地说

(\d+)\.(\d+)\.(\d+) 

用于匹配版本号。

利用正则表达式,您可以用空白值替换版本号。