2015-07-10 49 views
1

我使用下面的代码:如何在getURLParameter(name)函数中设置默认值?

<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参数名称是例如“Generic”或“Undefined”,将其设置为某个默认参数?

由于

+0

你的意思是输入参数的名称?还是功能 – BhavO

+0

的返回值添加如果检查语句,如果名字是!名称,然后将其设置某事 – BhavO

回答

0

这将检查name PARAM是否设定与否;如果没有,它就会默认值:

function getURLParameter(name) { 

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

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

是一种习惯,并会为你节省几个按键(即if(!){}||)。

如果您接受了许多JavaScript的falsy值,它就没用了,也不是if(!name){ name = 'default value'; }

如果您需要接受falsy值,以下是对于正确的版本是

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

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');
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');