У меня неправильный URL-адрес, например: http://www.abc.com/?abc&?as&?blah
Теперь я хочу сопоставить (и исключить) все ? в URL, кроме первого, чтобы сделать URL чистым. Возможно ли использование регулярных выражений в JavaScript? Я попробовал позитивный взгляд и другие методы, но у меня это не сработало.
?
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");
Протестировано в тестере регулярных выражений javascript .