Установить значение параметра URL по умолчанию, если ни один не указан

Я нашел этот ответ для получения аргументов URL из JavaScript в Интернете:

function getURLParameter(name) {
    return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/\+/g, '%20'))||null
}

Мне было интересно, если есть способ изменить это, поэтому, когда не указаны аргументы URL, предустановленное значение станет значением аргумента.

например. index.html?value=1 вернул бы 1,

Если я установлю значение по умолчанию 2, и кто-то напечатает index.html значение переменной будет 2.

1 ответ

Решение

Добавьте аргумент, чтобы указать значение по умолчанию, которое вы хотели бы, если ключ отсутствует:

function getURLParameter(name, _default) {
    var value = decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/\+/g, '%20')) || null
    return value !=null ? value : _default;
}

(К вашему сведению эта реализация относится ; в качестве разделителя: k=a;b вернется aэто немного странно.)

Другие вопросы по тегам