jQuery - 从字符串中删除文本

时间:2013-05-16 17:57:34

标签: javascript jquery string

标记看起来像这样......

<img id="holder" src="http://www.domain.com/images/title.size.jpg">

我的jQuery看起来像这样......

var image = jQuery('img#holder').attr('src');

我收到http://www.domain.com/images/title.size.jpg但我真的只想要http://www.domain.com/images/title.jpg。我的问题是....从文件名(和一个句点)中的句点之间删除所有内容的最佳方法是什么,所以我留下了http://www.domain.com/images/title.jpg

回顾: 只需要JS检查以查看最后一个斜杠后是否有多个句点,如果是,则查找斜杠后的第一个句点的位置和最后一个句点的位置,并删除中间的块。

4 个答案:

答案 0 :(得分:2)

我猜size是一个数字,而不是一个字符串。如果是这样,请使用以下代码:

var image = jQuery('img#holder').attr('src');
image = image.replace(/\.([0-9]+\.)/, '.');

使用此代码www.example.com/image.640.jpg变为www.example.com/image.jpg

如果size的语法类似于640x480,请使用此方法(注意'x'):

image = image.replace(/\.([0-9x]+\.)/, '.');

答案 1 :(得分:1)

function removebetweendots(str)
{
    var arr = str.split("/");
    var filename = arr[arr.length-1];
    var n = filename.split(".").length; 
    var newfilename;
    if(n>2)
        newfilename = filename.split(".")[0] +"."+ filename.split(".")[n-1];
    else
        newfilename = filename;
    arr[arr.length-1] = newfilename;
    return arr.join("/");
}

removebetweendots("http://www.domain.com/images/title.size.jpg");
// returns .. "http://www.domain.com/images/title.jpg"

removebetweendots("http://www.domain.com/images/title.size.moredata.jpg");
// returns .. "http://www.domain.com/images/title.jpg"

答案 2 :(得分:0)

答案是使用常规表达式。

var getSize = new RegExp({},"");

{}需要是你想要匹配的任何东西。我不知道它是否会成为.size。每次或数字。

答案 3 :(得分:0)

url = jQuery('img#holder').attr('src'); //the image url
url_parts = url.split('/'); //parts of url broken by '/'    
extensions = url_parts.pop().split('.'); //extensions in url (last elements in url_parts broken by '.')

if(extensions.length > 2) //if more than two extensions
   url = url_parts.join('/')+'/'+extensions[0]+'.'+extensions.pop() //replace url by joined non extension parts of orignal url, /, first and last extension

alert("My filtered url: "+url)

工作http://jsfiddle.net/5jLbs/