Я ищу плагин jQuery, который может получать параметры URL и поддерживать эту строку поиска без вывода ошибки JavaScript: «неправильная последовательность URI». Если не существует плагина jQuery, который поддерживает это, мне нужно знать, как изменить его для поддержки этого.
?search=%E6%F8%E5
Значение параметра URL при декодировании должно быть:
æøå
(персонажи норвежские).
У меня нет доступа к серверу, поэтому я не могу ничего изменить на нем.
javascript
url
query-string
url-parameters
Синдре Сорхус
источник
источник
decodeURIComponent()
. Норвежские символы, скорее всего, были закодированы с использованием чего-то подобного,escape()
и изменениеdecodeURIComponent()
вызоваunescape()
должно помочь.Ответы:
источник
name = 'bar'
, я думаю, это регулярное выражение будет соответствовать'foobar=10'
и вернуться'10'
. Может быть, вы могли бы добавить'[?|&]'
в начале вашего регулярного выражения. Ура!function getURLParameter(name) { var p = RegExp(name + '=' + '(.+?)(&|$)').exec(location.search); if(!!p) { p = decodeURI(p[1]); } return p; }
Ниже приведено то, что я создал из комментариев здесь, а также исправление ошибок, не упомянутых (например, возвращение нуля, а не нуля):
источник
new
перед RegExp? Меньше предупреждений от ворса.Что вам действительно нужно, так это плагин jQuery URL Parser . С помощью этого плагина получение значения определенного параметра URL (для текущего URL) выглядит следующим образом:
Если вам нужен объект с именами параметров в качестве ключей и значениями параметров в качестве значений, вы просто должны вызвать
param()
без аргумента, например:Эта библиотека также работает с другими URL-адресами, а не только с текущим:
Поскольку это целая библиотека для разбора URL, вы также можете получить другую информацию из URL, например, указанный порт, путь, протокол и т. Д.
У него также есть и другие функции. Посетите его домашнюю страницу , чтобы узнать больше документации и примеров.
Вместо того чтобы писать свой собственный URI анализатор для этой конкретной цели , что вроде работает в большинстве случаев, использовать фактический URI анализатор. В зависимости от ответа, код из других ответов может возвращаться
'null'
вместоnull
, не работает с пустыми параметрами (?foo=&bar=x
), не может анализировать и возвращать все параметры сразу, повторяет работу, если вы неоднократно запрашиваете URL для параметров и т. Д.Используйте фактический парсер URI, не изобретайте свой собственный.
Для тех, кто не любит jQuery, есть версия плагина, которая представляет собой чистый JS .
источник
Если вы не знаете, какими будут параметры URL, и хотите получить объект с ключами и значениями в параметрах, вы можете использовать это:
Вызов getParameters () с URL-адресом вроде
/posts?date=9/10/11&author=nilbus
бы вернет:Я не буду включать здесь код, так как он еще дальше от вопроса, но weareon.net опубликовал библиотеку, которая также позволяет манипулировать параметрами в URL:
источник
{"": undefined}
когда в URL нет параметров. Лучше всего возвращать пустой объект, используяif(searchString=='') return {};
сразу послеsearchString
присваивания.Вы можете использовать в браузере нативное свойство location.search :
Но есть несколько плагинов jQuery, которые могут вам помочь:
источник
Основываясь на ответе 999 :
Изменения:
decodeURI()
заменяется наdecodeURIComponent()
[?|&]
добавляется в начале регулярного выраженияисточник
?a=&b=1
. Лучше регулярное выражение будет:"[?&]"+name+"=([^&]*)"
Нужно добавить параметр i, чтобы сделать его нечувствительным к регистру:
источник
После прочтения всех ответов я получил эту версию с + второй функцией для использования параметров в качестве флагов
источник
источник
Например, функция, которая возвращает значение любой переменной параметра.
И вот как вы можете использовать эту функцию, предполагая, что URL,
"Http://example.com/?technology=jquery&blog=jquerybyexample".
Таким образом, в приведенном выше коде переменная «tech» будет иметь значение «jQuery», а переменная «blog» будет «jquerybyexample».
источник
Вы не должны использовать jQuery для чего-то подобного!
Современный способ - использовать небольшие модули многократного использования через менеджер пакетов, такой как Bower.
Я создал крошечный модуль, который может анализировать строку запроса в объект. Используйте это так:
источник
Здесь много глючного кода, и решения регулярных выражений очень медленные. Я нашел решение, которое работает в 20 раз быстрее, чем аналог регулярного выражения, и элегантно просто:
Regex не является основным и конечным решением, для этого типа проблем простое манипулирование строками может работать намного эффективнее. Исходный код .
источник
getURLParameter(id)
илиgetURLParameter(Id)
работает так же :)источник
Фрагмент кода jQuery, чтобы получить динамические переменные, хранящиеся в URL-адресе в качестве параметров, и сохранить их в виде переменных JavaScript, готовых для использования с вашими сценариями:
источник
источник
Я создал простую функцию для получения параметра URL в JavaScript из URL, например так:
ВЫВОД:
18
источник
На всякий случай, если у вас есть URL, например localhost / index.xsp? A = 1 #, вам нужно получить параметр, а не хеш.
источник
Небольшая модификация ответа от @pauloppenheim, так как он не будет правильно обрабатывать имена параметров, которые могут быть частью других имен параметров.
Например: если у вас есть параметры "appenv" и "env", переопределение значения для "env" может привести к значению "appenv".
Fix:
источник
Это может помочь.
источник
?twothrids=text