2016-04-07 7 views
0

"styles-123.min.js"という文字列がありますが、 "styles-456.min.js"に置き換えています。だから私はこれを行う:js - backreferenceが期待どおりに動作しない

str = "styles-123.min.js"; 
str = str.replace(/(styles|apps)/, "$0" + "-456"); 

alert(str) 

$ 0は解析され、結果が "$ 0から456-min.js" ではありません。どうして?

ありがとうございました。

答えて

0

JavaScriptでは、$0の代わりに$&を使用して一致値全体を参照します。

String#replace() referenceを参照してください:

$&挿入マッチした部分文字列。

あなたが$1を使用しない場合は、パターン内のキャプチャグループにはポイントがありません、あなたは、単に以下の正規表現を使用して-123をチェック

str = "styles-123.min.js"; 
 
str = str.replace(/styles|apps/, "$&-456"); 
 
document.body.innerHTML = str;

0

を使用することができます。

正規表現:-\d+

Javascriptのコード

str = "styles-123.min.js"; 
 
str = str.replace(/-\d+/, "-456"); 
 
alert(str);

Regex101 Demo

0

あなたが行うことができます($1が最初に一致した基を意味する):

str = "styles-123.min.js"; 
 
str = str.replace(/(styles|apps)[0-9-]+/, "$1-456"); 
 

 
alert(str);

関連する問題