从字符串Jquery

时间:2015-08-07 15:39:24

标签: jquery string replace

我有这个带有源代码的html图片:

<img src="http://url/test/img-429x600.jpg" class="test-class">

我需要的是删除&#34; -429x600&#34;部分来自消息来源。我可以使用以下jquery来实现:

var imgSrc = $('.test-class').attr("src");
imgSrc = imgSrc.replace("-429x600", "");    
$('.test-class').attr("src", imgSrc);

现在我的问题是,我怎么能删除相同的字符串,但如果我不知道那里会出现的数字。我希望能够删除字符串的那一部分,但不指定确切的值。

https://jsfiddle.net/9hmyyrh3/

2 个答案:

答案 0 :(得分:1)

首先取名,然后扩展,删除不需要的字符串

var abc = $('.test-class').attr("src");
var ext = abc.substr(abc.lastIndexOf('.')+1);
var name = abc.slice(0,-12);
var image_name = name+"."+ext;
$('.test-class').attr("src", image_name);

演示:https://jsfiddle.net/farhanbaloch/9hmyyrh3/1/

答案 1 :(得分:1)

我将其分解为一步一步只是为了使其可读

var imgSrc = $('.test-class').attr("src");
var img = /[^/]*$/.exec(imgSrc)[0];
var newImg = img.replace(/-.*\./g, ".");    

它剥离图像名称,查找“-STUFF”。并用“。”替换它。

https://jsfiddle.net/2yngbx96/

<强>更新 好的,一个考虑了连字符中间名并使用最后一个连字符作为过滤点的新版本

var imgSrc = $('.test-class').attr("src"); // get image src
var url = imgSrc.substring(0, imgSrc.lastIndexOf("/") + 1); // grab the base url
var img = /[^/]*$/.exec(imgSrc)[0]; // get the image name
var imgParts = img.split('.'); // seperate image to get extension
var imgName = /.*-/.exec(img)[0]; // get image name prior to last "-"
var newURL = url + imgName.substring(0,imgName.length - 1) + "." + imgParts[1]; // create new image url
$('.test-class').attr("src", newURL);

https://jsfiddle.net/kf4xeeq1/