我有以下两个功能,我试图允许用户输入一年,然后答案将导致答案。但是,如何告诉函数识别字符串,然后如果答案不是MM / DD / YYYY形式,运行函数wholePigLatin?基本上,我如何附加相同的按钮来运行这两个函数取决于什么用户提出。任何帮助将不胜感激。感谢。
function isLeaper() {
var image1 = document.getElementById('yes');
var image2 = document.getElementById('no');
var year = document.getElementById("isLeaper").value;
var arr = year.split('/');
var splitYear = arr[arr.length - 1];
// 1. If the year is divisible by 4, but not 100.
if ((parseInt(splitYear) % 4) == 0) {
if (parseInt(splitYear) % 100 == 0) {
if (parseInt(splitYear) % 400 != 0) {
$('#myDiv').html(image2).fadeIn(500).delay(1000).fadeOut(500);
// alert(year + 'is not a leap year. Sorry!');
return "false";
}
if (parseInt(splitYear) % 400 == 0) {
$('#myDiv').html(image1).fadeIn(500).delay(1000).fadeOut(500);
//alert(splitYear + ' is a leap year. Hooray! ');
return "true";
}
}
if (parseInt(splitYear) % 100 != 0) {
$('#myDiv').html(image1).fadeIn(500).delay(1000).fadeOut(500);
//alert(splitYear + ' is a leap year. Hooray! ');
return "true";
}
}
if ((parseInt(splitYear) % 4) != 0) {
$('#myDiv').html(image2).fadeIn(500).delay(1000).fadeOut(500);
//alert(splitYear + ' is not a leap year. Sorry! ');
return "false";
}
}
if ((parseInt(year) % 4) != 0) {
$('#myDiv').html(image2).fadeIn(500).delay(1000).fadeOut(500);
return "false";
}
我的第二个功能如下:
function wholePigLatin() {
var thingWeCase = document.getElementById("pigLatin").value;
thingWeCase = thingWeCase.toLowerCase();
var newWord = (thingWeCase.charAt(0));
if (newWord.search(/[aeiou]/) > -1) {
alert(thingWeCase + 'way')
}
else {
var newWord2 = thingWeCase.substring(1, thingWeCase.length) + newWord + 'ay';
alert(newWord2)
}
}
这是我的按钮。
<input type="text" id="isLeaper" value="MM/DD/YYYY">
<input type="button" value="Is Leap Year?" onclick="isLeaper();">
答案 0 :(得分:1)
您可以像调用内置函数(例如parseInt)一样调用自己的函数。您只需在要执行它的位置添加行wholePigLatin();
。
使按钮运行以下两个函数之一:只需引入一个带有包含布尔逻辑的if语句的函数,并在onClick事件中调用它:
function handleButtonClick() {
var year = document.getElementById("isLeaper").value;
if( isFormattedAsDate(year) ) {
isLeaper();
} else {
wholePigLatin();
}
}
和HTML:
<input type="text" id="isLeaper" value="MM/DD/YYYY">
<input type="button" value="Is Leap Year?" onclick="handleButtonClick();">
您仍需要实现isFormattedAsDate
函数,以便在格式正确时返回true,否则返回false。
答案 1 :(得分:0)
我想你想要这个:
function isLeaper() {
var year = document.getElementById("isLeaper").value;
if ( ! /* year is in DD/MM/YY format */)
return wholePigLatin();
// else
// go on as normal
// …
}
要检查格式,您可能需要使用正则表达式:/^\d{2}\/\d{2}\/\d{4}$/.test(year)
,还应该从true
返回实际的布尔值,如false
或isLeaper
功能而不是那些字符串。