如何在getURLParameter(name)函数中设置默认值?

时间:2015-07-10 17:48:04

标签: javascript

我正在使用以下代码:

<script type="text/javascript">

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

然后我在jAlert弹出框中使用URL参数,如下所示:

<script>
alert('Warning', 'Your'+getURLParameter('model') + 'is outdated.');
</script>

如何指定URL参数名称,例如&#34; Generic&#34;或&#34;未定义&#34;,将其设置为某个默认参数?

由于

2 个答案:

答案 0 :(得分:0)

检查是否设置了name param;如果没有,它会得到一个默认值:

function getURLParameter(name) {

    if (!name)
        name = 'default Value';

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

答案 1 :(得分:0)

  • name = name || 'default value';

是一种惯用语,可以为您节省一些按键(即if(!){}||)。

如果你接受了许多JavaScript的虚假价值,那么if(!name){ name = 'default value'; }就没用了。

如果您需要接受虚假值,则下面是正确的版本

  • if(typeof name === 'undefined'){ name = 'default value'; }

&#13;
&#13;
function defaultArg(name) {
   name = name || '<strong>my default name</strong>';


   document.write("My name is " + name + '</br>\n');
}

defaultArg();
defaultArg(undefined);
defaultArg(false);
defaultArg(null);
defaultArg(0);
defaultArg("Peter");
defaultArg(1);
defaultArg('null');
defaultArg('undefined');
&#13;
&#13;
&#13;
&#13;
&#13;
function defaultArg2(name) {
   if(typeof name === 'undefined') name = '<strong>my default name</strong>';


   document.write("My name is " + name + '</br>\n');
}
document.write('</br>')
defaultArg2();
defaultArg2(undefined);
defaultArg2(false);
defaultArg2(null);
defaultArg2(0);
defaultArg2("Peter");
defaultArg2(1);
defaultArg2('null');
defaultArg2('undefined');
&#13;
&#13;
&#13;