JS:提示用户输入,直到他们输入在参数
中指定的有效值。我的脚本应该提示用户输入性别,如果性别为'M'或'F',那么它将返回。如果有其他输入,则必须继续提示,直到输入任何值。JS:提示用户输入,直到他们输入在参数
function getGender() {
var yourGender = prompt('Enter your gender (M/F)');
var choice = yourGender;
if (choice = 'M' || 'F') {
return choice;
} else
do {
var yourGender = prompt('Enter your gender (M/F)');
}
while (choice != 'M' || 'F') {
}
}
A do-while
循环与while
循环不一样,它看起来像你混淆了它们的语法。下面是使用MDN的一个例子:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/do...while
另外,当使用逻辑运算符检查true或false时,您必须根据每个条件检查变量。你的功能应该是简单得多:
function getGender() {
do {
var yourGender = prompt('Enter your gender (M/F)').toLowerCase();
} while (yourGender !== 'm' && yourGender !== 'f');
return yourGender;
}
function getGender()
{
var yourGender; //otherwise, 'while' doesn't know it
do
{
yourGender = prompt('Enter your gener (M/F)');
}
while(yourGender != 'M' && yourGender != 'F')
}
我不知道如果提示部分是正确的,但千万,而部分应该像这样工作。
你知道如何做出及时区分大小写?即降低成本? –
只需添加&& yourGender!='m'&& yourGender!='f'if if – Birkl
function getGender(sensitive){
let gender;
let pat = sensitive ? /[MF]/ : /[MF]/i;
do
{
gender = prompt("Enter your gender (M/F)", '');
} while(!gender.match(pat));
return gender;
}
/* Case sensitive
getGender(sensitive=true);
//*/
//* Not case sensitive
getGender(sensitive=false);
//*/
感谢您的帮助,此工作 –
你知道如何使提示不区分大小写吗?即降低成本? –
我更新后向您显示不敏感的情况。 – 2017-10-16 13:40:30
This works,thank you。是的,它应该更简单,欣赏帮助。你知道如何使提示不区分大小写吗?即降低成本? –
@JimmieDavis当然,我用'.toLowerCase()'更新了答案。您只需将其添加到提示的末尾,然后更改小写'm'和'f'的条件检查。 – skyline3000