从图像网址中删除字符作为字符串检索?

时间:2016-06-11 23:10:54

标签: javascript node.js

如何从Node.js中的字符串中删除图像分辨率?

  

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

我希望它只是

  

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

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

以上代码由于某种原因无效?

4 个答案:

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

您可以使用此正则表达式,在替换时引用匹配的组。

答案 1 :(得分:0)

您的正则表达式匹配破折号和.jpg的网址。而替换将删除除-800x800之外的所有内容。

请查看here以获取正则表达式的结果。

您可以使用regex.match并加入结果。或者像这样使用正则表达式替换:

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

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

答案 3 :(得分:0)

首先你的正则表达式匹配整个字符串,所以你应该得到一个空的结果。

然后你不需要多次匹配的“g”,你只需要删除URL末尾的部分。

最后,你必须在替换字符串中输入保存的文件扩展名。

使用regexp literal:

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

在正则表达式结束时不要忘记 $ 字符。