2012-01-02 3 views
0

Я получаю URL-адрес якорного объекта, такого как document.links[0].href. Я хочу удалить часть поиска («Часть, которая появляется после символа«? ») Из этой строки. Я знаю, что для этого я могу использовать регулярное выражение. Есть ли другой эффективный способ сделать это?Удаление части поиска URL-адреса

ответ

1
var a = //my string 
a = a.substr(0, a.indexOf('?')); 

Просто подстройте до первого ?; если по какой-то причине у вас есть 2 ?, второй, вероятно, находится в пути запроса и все равно будет удален ...

0

Один из способов - разбить его на "?" персонаж.

var url = document.links[0].href; 
var base = url.split("?")[0]; 

должно быть быстрее, но, конечно, вы можете столкнуться с проблемами, если по какой-то причине у вас есть два?

+1

Это будет работать. Но меня очень беспокоит производительность. Мне придется обрабатывать сотни ссылок до 600 мс. Уже требуется около 550 мс. Так что это будет проблемой. –

+0

@Selvaraj M A - Вы сравнили это? Я подозреваю, что вы обнаружите, что большую часть времени тратится на DOM, чтобы получить строки, а не собственно обработку строк. – Quentin

-1

вы можете найти поиск часть с помощью этого:

document.location.search 

, а затем заменить его из document.location.href или использовать document.location.host и document.location.pathname для вашей цели

+1

Это не будет работать. Потому что я получаю url от объекта привязки (который является строкой). Не из документа. –

Смежные вопросы