Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中严格搜索字符串以验证月份_Javascript - Fatal编程技术网

在javascript中严格搜索字符串以验证月份

在javascript中严格搜索字符串以验证月份,javascript,Javascript,我想做的是严格搜索一月二月三月四月…等输入到一个文本字段格式为 年月日(前:1993年1月) 我想对此进行验证,以便用户可以输入所有小写或大写(jan/jan) 我所做的似乎不起作用 var firstM =month.charAt(0,2); var months = { "jan" : "JAN", "feb" : "FEB", "mar" : "MAR", "ap

我想做的是严格搜索一月二月三月四月…等输入到一个文本字段格式为

年月日(前:1993年1月)

我想对此进行验证,以便用户可以输入所有小写或大写(jan/jan)

我所做的似乎不起作用

     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这是我得出的结论,完全忘了更新这个页面。谢谢你,尼克