Создать закладку URL для регулярного выражения? - PullRequest
1 голос
/ 16 марта 2012

Я пишу веб-приложение на JavaScript.Я хотел бы позволить пользователям выполнять поиск в каталоге с помощью регулярных выражений и записывать свои условия поиска в URL, чтобы они могли добавлять в закладки результаты.

Например, для создания закладки для поиска состояний с именами, начинающимися с «A» и заканчивающимися «a»:

/states/^A.*a$

Люди должны иметь возможность добавить этот URL в закладки и получить результаты, соответствующие Аляске, Аризона и Алабама.

Тем не менее, я считаю, что URL-безопасные символы и символы регулярных выражений не сочетаются друг с другом.Например, когда я пишу ^ в URL, браузеры переписывают его как %5E.

Может кто-нибудь предложить лучший способ создать закладку URL для регулярного выражения?Мне не нужно поддерживать все возможные символы регулярных выражений: только ASCII плюс $, *, ?, ^ и |.

В идеале я бы хотел избежать длинного неуклюжего URL с параметрами GET, такими как /states?init=A&final=a, но, возможно, мне нужно идти именно так.

1 Ответ

1 голос
/ 16 марта 2012

Если вы действительно настроены на то, чтобы поиск по регулярным выражениям "сохранялся" в URL-адресах, я просто закодировал бы URL-адрес / декодировал URL-адрес строки поиска и покончил бы с этим.

Вы можете явно URl-кодировать строку поиска, а затем явно декодировать ее, когда они делают запрос.

Тем не менее, я настоятельно рекомендую вам задать строку поиска как URL параметр запроса , а не как часть самого URL. Особенно в вашем случае, когда это поиск, вам намного лучше иметь строку запроса в виде строки запроса, а не URL. Это помогает таким вещам, как SEO, REST-соответствие, поддержка URL и т. Д.

Наконец, есть другие способы, позволяющие пользователям также добавлять закладки в поиски. Если вы назначаете каждому поисковому запросу идентификатор и сохраняете фактический запрос в базе данных для этого конкретного идентификатора закладки, вы можете дать своим пользователям хорошие URL-адреса, такие как /states/search/bookmark/12345/, которые являются чистыми, удобными для пользователя, легко добавляются в закладки, доступны для совместного использования и, что лучше всего, все, вы можете делать что-то с ними за кулисами, если вам нужно. Это отлично подходит для случаев, когда вам нужно обновить поиск или добавить больше мощности и т. Д.

...