【发布时间】:2011-03-28 19:35:31
【问题描述】:
我的网址格式不正确,如下所示:http://www.abc.com/?abc&?as&?blah
现在,我想匹配(并消除)URL 中除第一个之外的所有?,以使 URL 干净。是否可以在 JavaScript 中使用正则表达式?我尝试了积极的向后看和其他方法,但对我没有用。
【问题讨论】:
标签: javascript regex
我的网址格式不正确,如下所示:http://www.abc.com/?abc&?as&?blah
现在,我想匹配(并消除)URL 中除第一个之外的所有?,以使 URL 干净。是否可以在 JavaScript 中使用正则表达式?我尝试了积极的向后看和其他方法,但对我没有用。
【问题讨论】:
标签: javascript regex
也许不是最好的,但可能的解决方案:将第一个问号处的字符串一分为二,使用正则表达式删除第二个字符串中的所有问号,然后将它们粘在一起。
【讨论】:
var url = 'http://www.abc.com/?abc&?as&?blah';
var pos = url.search(/\?/) + 1;
var validUrl = url.substr( 0, pos )
+ url.slice( pos ).replace(/\?/g, '');
【讨论】:
试试这个,
var str = "http://www.abc.com/?abc&?as&?blah";
str = str.replace(/(http:\/\/[^\/]+\/\?[^\?]+)\?([^\?]+)\?([^\?]+)/,"$1$2$3");
【讨论】: