Javascript正则表达式删除扩展名之后的所有内容
Javascript regex remove everything after .extension
我有以下示例URL,需要对进行消毒
http://image.s5a.com/is/image/saks/0447522591096_647x329.jpg" border="0" params="">
进入
http://image.s5a.com/is/image/saks/0447522591096_647x329.jpg
我的问题是,无论扩展名是.jpg、.png还是.jpeg,我都应该使用哪种正则表达式来灵活地删除扩展名之后的所有内容?
此外,扩展后的文本和符号也会有所不同。
感谢
(.*?(?:jpg|png|jpeg))|.*
试试这个。替换为$1
。请参阅演示。
http://regex101.com/r/rQ6mK9/47
您可以使用:
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
regex的一个替代方案是只使用基本的字符串解析。
var fullUrl = 'http://image.s5a.com/is/image/saks/0447522591096_647x329.jpg" border="0" params="">';
var baseUrl = fullUrl.split(' ')[0];
编辑:你可能还想解码url,这样你就不会被%编码绊倒。
var fullUrl = 'http://image.s5a.com/is/image/saks/0447522591096_647x329.jpg" border="0" params="">';
var fullUrl = decodeURI(fullUrl);
var baseUrl = fullUrl.split(' ')[0];
你不应该自己尝试做这样的事情。所有语言都有用于阅读HTML的库,而且它们比自己阅读更可靠。如果这是客户端javascript,则可以使用jQuery;那么,如果element
是表示HTML元素的jquery对象,则element.attr('src')
将是src
属性的值。
相关文章:
- 正则表达式用于在javascript中存储单词之前和之后
- 正则表达式删除最后一个数字之后的字符串
- Javascript 正则表达式在特定单词或数字之后拆分
- 如何在 javascript 中使用正则表达式提取句点 (.) 之后的字符串
- JavaScript 正则表达式,返回模式之前和之后的所有内容
- JavaScript正则表达式在“句子”之前和之后的空格需要删除
- 正则表达式在文本中查找匹配项,而不是在单词之后
- 需要正则表达式在用冒号分隔之前和之后获取字符串
- Javascript正则表达式删除扩展名之后的所有内容
- 如何构造一个javascript正则表达式来提取特殊字符串之后的所有字符串
- 将输入光标设置为javascript正则表达式之后的正确位置
- 正则表达式,用于查找一个术语之后和另一个术语之前的单词
- 选择A之后的所有文本”#"带有正则表达式的符号
- 正则表达式匹配大写字母,而不是在破折号之后
- 正则表达式,它匹配一个单词,而不是在另一个单词之后
- 正则表达式来删除子字符串和x之后的所有字符
- 正则表达式如何选择“.”之后的任何字符
- 正则表达式,用于替换前4位之后的数字
- 用于匹配两个/反斜杠/之间的字符串的正则表达式模式,该模式直接出现在另一个字符串的第一次匹配之后
- 正则表达式,用于在非字母之前和之后的字母