2017-12-27 18 views
0

挨拶メッセージを表示してから、URLから取得した名前の値を表示しようとしています。それは動作しますが、変数名がない場合、何も挨拶メッセージが表示されません。この問題の原因は何ですか?何の変数名が存在しない場合URL変数から値を取得して表示する

<h1 class="welcomeGreeting" style="color: white !important; text-align: center; padding-bottom:1px !important; margin-bottom:1px !important;"> 
</h1><script> 
    var url = window.location.href; 
    var captured = /name=([^&]+)/.exec(url)[1]; // Value is in [1] ('384' in our case) 
    var result = captured ? captured : 'myDefaultValue'; 
//var result = window.location.href.split('&name=')[1]; 


    window.alert(result); 
    var thehours = new Date().getHours(); 
var themessage; 
var morning = ('Good morning'); 
var afternoon = ('Good afternoon'); 
var evening = ('Good evening'); 

if (thehours >= 0 && thehours < 12) { 
     themessage = afternoon + ' ' + result; 

} else if (thehours >= 12 && thehours < 17) { 
     themessage = afternoon + ' ' + result; 

} else if (thehours >= 17 && thehours < 24) { 
     themessage = afternoon + ' ' + result; 
} 

$('.welcomeGreeting').append(themessage); 

</script> 
+0

を値を抽出する必要が

Jay

答えて

1

それは動作しますが、しかし、何でも グリーティングメッセージを示していません。この問題の原因は何ですか?見つかった一致がない場合

exec

nullを返します。したがって、 urlに変数が存在しない場合は、 null[1]を実行しようとしています。あなたが最初にあなたが値を取得、そこからあなたのURLを提供することができ、変数の値を取り、それから

var captured = /name=([^&]+)/.exec(url); 
var result = captured ? captured[1] : 'myDefaultValue'; 
関連する問題