在javascript中严格搜索字符串以验证月份
我想做的是严格搜索一月二月三月四月…等输入到一个文本字段格式为 年月日(前:1993年1月) 我想对此进行验证,以便用户可以输入所有小写或大写(jan/jan) 我所做的似乎不起作用在javascript中严格搜索字符串以验证月份,javascript,Javascript,我想做的是严格搜索一月二月三月四月…等输入到一个文本字段格式为 年月日(前:1993年1月) 我想对此进行验证,以便用户可以输入所有小写或大写(jan/jan) 我所做的似乎不起作用 var firstM =month.charAt(0,2); var months = { "jan" : "JAN", "feb" : "FEB", "mar" : "MAR", "ap
var firstM =month.charAt(0,2);
var months =
{
"jan" : "JAN",
"feb" : "FEB",
"mar" : "MAR",
"apr" : "APR",
"may" : "MAY",
"jun" : "JUN",
"jul" : "JUL",
"aug" : "AUG",
"sep" : "SEP",
"oct" : "OCT",
"nov" : "NOV",
"dec" : "DEC"
};
else if (firstM !== months[firstM])
{
errMessages += "<li class='b1'> Date of Birth must start with 3 letter month</li>\n";
errMessages += "<li class='b2'> ex: mmmyyy / JAN1993</li>\n";
}
var firstM=month.charAt(0,2);
风险值月份=
{
“jan”:“jan”,
“二月”:“二月”,
“mar”:“mar”,
“apr”:“apr”,
“五月”:“五月”,
“君”:“君”,
“七月”:“七月”,
“八月”:“八月”,
“sep”:“sep”,
“十月”:“十月”,
“十一月”:“十一月”,
“dec”:“dec”
};
否则如果(firstM!==月[firstM])
{
errMessages+=“出生日期必须以3个字母的月份开始 \n”;
errMessages+=“例如:mmmyyy/JAN1993 \n”;
}
我仍然习惯于弄清楚如何使用带有“jan”的.charAt:“jan”我想如果我这样做,用户可以输入所有小写或大写字母,并进行验证,但无论我做什么,错误都会不断出现
任何帮助都将不胜感激。charAt()
返回指定位置的字符,而不是子字符串,我不确定如何从中获取月份,但如果您想获取前3个字符,请使用substr
var firstM = month.substr(0, 3);
charAt()
返回指定位置的字符,而不是子字符串,我不确定如何从中获取month
,但如果要获取前3个字符,请使用substr
var firstM = month.substr(0, 3);
根据文档,只接受一个参数并返回一个长度为1的字符串。你要找的是和
months[check]
如果前三个字母与对象中的某个字母匹配,将返回一个真实值。根据文档,只接受一个参数并返回一个长度为1的字符串。你要找的是和
months[check]
如果前三个字母与对象中的某个字母匹配,将返回真实值。为了简化代码,可以使用正则表达式吗
function checkInput(input) {
var months = /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i;
if (months.test(input) == false) {
// TODO: Show validation error message
}
}
为了简化代码,可以使用正则表达式吗
function checkInput(input) {
var months = /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i;
if (months.test(input) == false) {
// TODO: Show validation error message
}
}
如果没有正则表达式,函数可能如下所示:
function checkInput(input) {
var months = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"];
var monthPartOfInput = input.substring(0, 3).toLowerCase();
if (months.indexOf(monthPartOfInput) == -1){
// TODO: Show validation error
}
}
如果没有正则表达式,函数可能如下所示:
function checkInput(input) {
var months = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"];
var monthPartOfInput = input.substring(0, 3).toLowerCase();
if (months.indexOf(monthPartOfInput) == -1){
// TODO: Show validation error
}
}
代码有点不完整。。。else
属于什么?我只是用小写字母做一个月数组,用于搜索和比较。@Imp我的道歉,中间有代码,我拿出来让你们更容易阅读,这就是为什么还有一个else if there和j08691谢谢你们代码不完整。。。else
属于什么?我只是用小写字母做一个月数组,用于搜索和比较。@Imp我的道歉,中间有代码,我拿出来让你们更容易阅读,这就是为什么还有一个else if there和j08691谢谢你们我应该把它放入数组中,这样我就可以包含所有的月了吗?因为用户不应该被允许输入“FJR”之类的内容。好吧,所以我尝试了一下……当我输入1993年1月时,它会验证,但如果我输入1月/1月,它就不会验证。我做错了什么?我应该将其放入数组中,以便我可以包含所有月份吗?因为不应该允许用户放置类似“FJR”的内容.好的,所以我试过了…当我输入1993年1月时它会验证,但如果我输入1月/1月则不会验证…我做错了什么?不幸的是,我不能使用正则表达式,否则那里的权利会让生活变得更简单、更干净lol。但谢谢你不幸的是,我不能使用正则表达式,否则那里的权利会让生活变得更简单、更干净清洁工哈哈。但谢谢你这是我得出的结论,完全忘了更新这个页面。谢谢Nick这是我得出的结论,完全忘了更新这个页面。谢谢你,尼克