Javascript正则表达式删除.extension之后的所有内容

时间:2014-10-22 17:49:35

标签: javascript regex

我有以下需要清理的示例网址

http://image.s5a.com/is/image/saks/0447522591096_647x329.jpg" border="0" params="">

http://image.s5a.com/is/image/saks/0447522591096_647x329.jpg

我的问题是,我应该使用哪个正则表达式来灵活删除.extension之后的所有内容,无论它是.jpg,还是.png或.jpeg?

扩展后的文字和符号也会有所不同。

由于

4 个答案:

答案 0 :(得分:3)

(.*?(?:jpg|png|jpeg))|.*

试试这个。$1。见。演示。

http://regex101.com/r/rQ6mK9/47

答案 1 :(得分:1)

您可以使用:

var s = 'http://image.s5a.com/is/image/saks/0447522591096_647x329.jpg" border="0" params="">';
var r = s.replace(/^(.+?\.(png|jpe?g)).*$/i, '$1');
//=> http://image.s5a.com/is/image/saks/0447522591096_647x329.jpg

答案 2 :(得分:0)

正则表达式的替代方法是使用基本的字符串解析。

var fullUrl = 'http://image.s5a.com/is/image/saks/0447522591096_647x329.jpg" border="0" params="">';
var baseUrl = fullUrl.split(' ')[0];

编辑:你可能还想解码这个网址,这样你就不会被%编码绊倒。

var fullUrl = 'http://image.s5a.com/is/image/saks/0447522591096_647x329.jpg" border="0" params="">';
var fullUrl = decodeURI(fullUrl);
var baseUrl = fullUrl.split(' ')[0];

答案 3 :(得分:0)

你不应该自己尝试做这样的事情。所有语言都有用于阅读HTML的库,它们比自己做的更可靠。如果这是客户端javascript,你可以使用jQuery;然后,如果element是表示HTML元素的jquery对象,element.attr('src')将是src属性的值。