2017-05-11 12 views
0

この問題に関するすべての回答を確認しましたが、これらは適用されません。私は名前と性別を尋ねる簡単なスクリプトを作りたいと思います。人が自分を女性として識別した場合、スクリプトは文字列の最後の文字を削除し、それを「女性」という単語に置き換えます。 Agnes => Agnewoman、Maya => MaywomanなどJavaScriptでは文字列が不変であることを知っています。私は私の考えを表現するために口頭の言葉を使用しました。JavaScriptの最後の文字を単語に置き換えるにはどうすればよいですか?

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Let's get started</title> 
<link href="../_css/site.css" rel="stylesheet"> 

<script> 
var name = prompt("What's your name", " "); 
var answer = prompt("Are you a woman?", " "); 
</script> 

</head> 

<body> 
<div class="wrapper"> 
    <header> 
    JAVASCRIPT <span class="amp">and</span> jQUERY 
    </header> 
    <div class="content"> 
    <div class="main"> 
     <h1>Variables</h1> 

     <script> 
     if (answer == "yes" || answer == "Yes" || answer == "YES" || answer == "y" || answer == "Y"){ 
      document.write(...); 
     } else { 

     }; 
     </script> 

    </div> 
    </div> 
</div> 
</body> 
</html> 
+0

を見ることができます@のalpadevの答えの下で私のコメントをご確認ください。 – cezar

答えて

0

あなたは私の提案されたソリューションJSFiddle

if (answer == "yes" || answer == "Yes" || answer == "YES" || answer == "y" || answer == "Y"){ 
    name = name.slice(0, -1); 
    document.write(name+"woman"); 
} else { 
    document.write(name); 
} 
+0

私はこれを試して、最初の部分を配列に置き換えました。 –

0

あなたはこのような何か試すことができます。

var gender = 'man'; 
if (answer == "yes" || answer == "Yes" || answer == "YES" || answer == "y" || answer == "Y") { 
    gender = 'woman' 
} 

console.log(name.substring(0, name.length-1) + gender); 
+2

'var answer = ['はい'、 'はい'、...];' if節でこれをチェックしてください: 'if(answers.includes(answer )){//何か} '。 – cezar

+0

@alpadexそれは動作します!あなたのコードにいくつか変更を加えました。私は "var gender =" man "を使わず、代わりに" woman "を使用しましたが、console.logをdocument.writeに置き換えました。 –

+0

'/yのような正規表現を使うのはもっと賢明でしょう。私はあなたの答えをテストし、より多くの可能性を追加するために、もっと時間が必要であると確信しています。 – 5aledmaged

1

奇妙な問題を、しかし、解決策は簡単です:

最後の文字を削除し、 "女性" を追加し

名= name.substring( 0、name.length - 1)+ "女性";

編集:ユーザーが空の文字列を入力した場合、これはまだ私が確認するためにあなたの性別の質問を変更します0

+0

私はこのようにコードを変更しました: と完全に動作します。 –

+0

私はこの部分 "name.length> 0"を理解していません。私を説明できますか? –

1

としてサブストリング扱いとして、負のパラメータを働くだろう - あなたは心配する必要はありません入力できるさまざまなオプション。次に、JavaScriptでそれは答えが真であるかどうかをチェックするかのように単純である(あなたがもし(答え== true)か、以下のように簡単な方法を使用することができます。

var name = prompt("What's your name", " "); 
var namePortion = name.substring(0, name.length-1); 

var answer = confirm("Are you a woman?"); 
if (answer){ 
    console.log(namePortion + 'woman') 
} else { 
    console.log(namePortion +'man') 
}; 
+0

このコードを正しく理解しているかどうかわかりません。あなたは "var answer = confirm [...]"をどこに置いていますか?(コードのどの部分を意味するのですか... 、) –

0

function showValue(){ 
 
var inp = document.getElementById("input_id").value; 
 
var slp = document.getElementById("select_id").value; 
 
if(slp== 'woman'){ 
 
document.getElementById("result").innerHTML = inp.slice(0,-1)+'woman'; 
 
} 
 
else document.getElementById("result").innerHTML = inp; 
 
}
Name: <input id='input_id'> 
 
gender : <select id='select_id'> 
 
    <option value="man">man</option> 
 
    <option value="woman">woman</option> 
 
</select> 
 
<button onclick='showValue()'>show</button> 
 
<p id='result'></p>

てみスライス(0、-1)

1

また方法置き換えるを使用することができます

name.replace(name.charAt(name.length-1), "women"); 
関連する問題