2016-06-11 8 views
0

Node.jsの下の文字列から画像の解像度を削除するにはどうすればよいですか?文字列として取得された画像URLから文字を削除しますか?

http://asset.beyonce.com/wp-content/uploads/2016/06/XIII6614-800x800.jpg

私はそれが-800x800せずにただ

http://asset.beyonce.com/wp-content/uploads/2016/06/XIII6614.jpg になりたいです!

var image = 'http://asset.beyonce.com/wp-content/uploads/2016/06/XIII6614-800x800.jpg'; 

image = image.replace(new RegExp("^(.*?)-\d+x\d+\.([^/]+)$", "g"), "") 
    console.log(image); 

上記のコードは、何らかの理由で動作しませんか?

+0

'/ \ - \ d + x \ d + /'はうまくいくでしょう。 –

答えて

1
var image = 'http://asset.beyonce.com/wp-content/uploads/2016/06/XIII6614-800x800.jpg'; 

image = image.replace(/^(.*?)(-\d+x\d+)(\.[^/]+)$/, "$1$3"); 
console.log(image);  

あなたは、この正規表現を使用することができ、交換時にマッチしたグループに参照のうえ:または、次のように置き換える正規表現を使用します。

0

あなたの正規表現は、ダッシュまでのURLと一致しており、.jpgです。そして置換は-800x800以外のすべてを削除します。

正規表現の結果については、hereをご覧ください。

regex.matchを使用して結果に参加できます。

image = image.replace(new RegExp("-\d+x\d+", "g"), "") 
0

主な問題は、正規表現があなたがしたいことを果たさないということです。

また、new RegExpはスラッシュ内ですぐに定義することができるので、少し過剰です。 以下のコードを参考にしてください。

var image = 'http://asset.beyonce.com/wp-content/uploads/2016/06/XIII6614-800x800.jpg'; 

image = image.replace(/-\d+x\d+\./g, "") 
console.log(image); 
0

まず、正規表現が文字列全体に一致するため、空の結果が得られるはずです。

次に、「g」は複数回一致する必要はなく、URLの最後にある部分を削除するだけで済みます。

最後に、保存されたファイル拡張子を置換文字列に入れなければなりません。

使用正規表現リテラル:

image = image.replace(/-\d+x\d+\.([^/]+)$/, ".$1"); 

は、正規表現の末尾に$文字を忘れないでください。

関連する問題