2017-07-07 7 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

[OK]を、これは厄介ですが、それが動作する...

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+) 

バージョン番号を一致させるため。

正規表現を使用すると、バージョン番号を空白の値に置き換えることができます。

関連する問題