替换具有不断更改的动态版本号的脚本标记

时间:2017-07-07 12:00:30

标签: javascript node.js

我想使用javascript在HTML文件中删除或替换此字符串。

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

麻烦的是,版本号&#34; 1.0.953&#34;不断变化所以我不能使用简单的string.replace

2 个答案:

答案 0 :(得分:0)

您可以使用以下Regex实现此目的:

\?.*?\"

或者,更具体地说

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

用于匹配版本号。

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

答案 1 :(得分: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', '');