我在 Rails 應用程式中有一個搜索欄位。它是這樣實作的:
<%= text_field_tag :searchAny, params[:searchAny_params], placeholder: "Search", id: "search_input", class: "search-field" %>
<%= submit_tag "Search", name: nil, id: "search-button", class: "search-button" %>
當我搜索包含空格的字串時,例如:find something,我進入find something引數,然后在 url 中呈現為find something. 據我所知,空間曾經通過 進行轉義,但現在它們應該通過 進行轉義。
我非常想在我的 url 中切換到 ,因為我在我的前端訪問查詢字串以使其可用于新的搜索功能或在某處決議它,并且需要 符號作為可行的查詢字串。目前我無法搜索house or ,因為我撰寫的 JS 函式拆分了搜索字串,目前必須替換 為space.
var searchquery = searchParams.split('?').pop().split('&').pop().split('=')[1].replace(/[ ]/g, ' ');
在我重構之后,我希望我的 url 的搜索字串部分帶有 的空間,并讓 可用。
var searchquery = searchParams.split('?').pop().split('&').pop().split('=')[1].replace(/ /, ' ');
如何更改引數在搜索字串中的轉義方式?
我希望有人能把我引向正確的方向。提前致謝。
添加
目前我的 Rails 應用程式生成以下 URL:
https://www.domain.tld/collection/opac?searchAny=find something
我希望查詢字串已經 % 轉義:
https://www.domain.tld/collection/opac?searchAny=find something
uj5u.com熱心網友回復:
根據來自類似問題的答案,您可以使用Addressable gem。或者,您也可以嘗試使用 Javascript 的encodeUri()從前端處理 URL 編碼。例如:
document.getElementById('search_button').addEventListener('click', function() {
var searchInput = document.getElementById("search_input");
var encodedQuery = encodeURI(searchInput.value)
// continue to use the encodedQuery as search query
});
希望這可以幫助!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/491383.html
標籤:javascript 轨道上的红宝石 红宝石 cgi
