Я хочу получить данные из строки запроса URL и отобразить ее в теле документа HTML. Я не могу заставить скрипт заменить знаки + пустым пространством.Заменить значение массива
Пример URL: www.mywebsite.com/?item=Sandwich & хлеб = Белый + Хлеб
В HTML тела, текстовое поле для пункта будет показывать «сэндвич», но текстовое поле для хлеба покажет «Белый + хлеб.» Как я могу заменить + на пробел?
Вот функция Im помощи, чтобы получить значение из URL
function querystring(key) {
var re=new RegExp('(?:\\?|&)'+key+'=(.*?)(?=&|$)','gi');
var r=[], m;
while ((m=re.exec(document.location.search)) != null) r.push(m[1]);
return r;
}
$("span.item").text(querystring('item'));
$("span.bread").text(querystring('bread'));
Я попытался использовать это, но это говорит мне массивы не имеет функции замены.
.replace(/\+/g, ' ')
Это потому, что массивы не имеют метод замены. Где вы пытались использовать этот вызов '.replace()'? Если вы поместили его внутри цикла while (например, 'r.push (m [1] .replace (...)), это может сработать. Кроме того, почему вы не используете один из многих пользовательских интерфейсов, созданные функции, которые уже выполняют этот синтаксический анализ? Некоторые из них оптимизируют извлечение значения ключа из строки запроса, а также гораздо лучшую поддержку таких вещей. Например - http://stackoverflow.com/questions/901115/how -can-i-get-query-string-values-in-javascript (мне нравится второй ответ) – Ian
Возможно, я не понял вопрос правильно, но почему бы не использовать 'encodeURI()/decodeURI()'? – ochi
Спасибо, Аллан Я попытался выполнить поиск, но, я думаю, я не искал правильные теги. Это решение намного эффективнее и отлично подходит для меня. – Narong