正则表达式如何匹配问号

cn00439805 2016-02-25 10:11:03
var url1 = 'http://m.a.com/mulu/a1.png';
var url2 = 'http://m.a.com/mulu/a1.png?r=122134234';
function getName(url){
return url.match(/.*\/(.*)(\??)/)[1];
}
console.log(getName(url1));
console.log(getName(url2));
我想用正则同时处理这两种情况,都得到"a1.png",请问函数中的正则应该怎么修改


...全文
3443 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
scscms太阳光 2016-02-29
  • 打赏
  • 举报
回复
function getName(url){
    var reg = (url+"").match(/[^/]+$/);
    return reg ? reg[0].split(/[?#]/)[0] : "";
}
console.log(getName(""));
console.log(getName("/sdf/"));
console.log(getName("sdf/a1.png?sd=sd"));
console.log(getName("sdf/a1.php?sd=sd"));
console.log(getName("sdf/a1.aspx#sd"));
Go 旅城通票 2016-02-25
  • 打赏
  • 举报
回复

    var url1 = 'http://m.a.com/mulu/afefa1.png';
    var url2 = 'http://m.a.com/mulu/axxafe1.png?r=122134234';
    function getName(url) {
        return url.match(/(([^\/]+)\.png)/i)[1];
    }
    console.log(getName(url1));
    console.log(getName(url2));
天际的海浪 2016-02-25
  • 打赏
  • 举报
回复
return url.match(/.*\/([^?]*)/)[1];
文盲老顾 2016-02-25
  • 打赏
  • 举报
回复

alert(/^.*?(?=(?:\?|$))/gi.exec(url3));
cn00439805 2016-02-25
  • 打赏
  • 举报
回复
不一定是png var url3 = 'http://m.a.com/mulu/xx.jpeg?xx=cc'; var url4 = 'http://m.a.com/mulu/xx.xxxx?aa=bbb';
正则表达式 正则表达式 - 教程 正则表达式 - 简介 正则表达式 - 语法 正则表达式 - 元字符 正则表达式 - 运算符优先级 正则表达式 - 匹配规则 正则表达式 - 示例 正则表达式 - 在线工具 正则表达式 – 简介 正则表达式 – 元字符 正则表达式 - 语法 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。 例如: runoo+b,可以匹配 runoob、runooob、runoooooob 等,+ 号代表前面的字符必须至少出现一次(1次或多次)。 runoo*b,可以匹配 runob、runoob、runoooooob 等,* 号代表字符可以不出现,也可以出现一次或者多次(0次、或1次、或多次)。 colou?r 可以匹配 color 或者 colour,? 问号代表前面的字符最多只可以出现一次(0次、或1次)。 构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。 正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧