javascript - 帮我创建正则表达式

标签 javascript regex

格式日期:MMM D[,] YYYY

[,] - 可选的逗号,可以是一些空格。示例:

Nov 12,     2000 - true
Nov 12 2000 - true
Nov 12, 2000 - true
Nov      12,    2000 true

我的正则表达式:/^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\*(\d{1,2})\,? *(\d{4})$/ 但如果值 - 2010 年 3 月全部为真

我的校验值函数

function checkDateWithStringMonth1(value) {
        //reset
        resetDate();
        //set min and max date
        var minYear = 1900;
        //var maxYear = (new Date()).getFullYear();
        // regular expression to match required date format
        re = /^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\ *(\d{1,2})\,? *(\d{4})$/;
        //check correct
        if (value != '') {
            if (regs = value.match(re)) {
               if (regs[2] < 1 || regs[2] > 31) {
                    return false;
                }
                if(regs[3] < minYear){return false;}
            } else { return false; }
        } else { return false; }
        //assign

        return true;        
    }

最佳答案

/^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d{1,2}),?\s+(\d{4})$/

与原来的不同之处:

  • \s 而不是 [space] 来处理不同种类的空格
  • +而不是*:*表示0个或多个,你要1个或多个
  • 无需转义,

编辑:容纳逗号后没有空格的日期:

/^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d{1,2})(?:,|\s)\s*(\d{4})$/
  • (?: 统计一个非捕获组。
  • (?:,|\s)\s*:允许使用逗号或空格字符,然后可能还有更多空格。

测试:

var dates = ["Nov 12,     2000", "Nov 12 2000", "Nov 12, 2000", "Nov      12,    2000", "Nov 12,2000"],
    regex = /^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d{1,2})(?:,|\s)\s*(\d{4})$/;

dates.map(function (d) { return regex.test(d); });
// => [true, true, true, true, true]

关于javascript - 帮我创建正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6074991/

相关文章:

javascript - 使用正则表达式验证末尾带有 extensios 的 url

javascript - 如何从标称字符串中删除 0,但不从 javascript 中的小数中删除

regex - 当文件名中包含其他点时,如何按扩展名匹配文件?

javascript - 使用 getJSON 动态更新 HTML

javascript - 由于元素中的空间,将数组元素拆分为更多元素

javascript - REACT 渲染为空

javascript - JS : Convert text into object array

python - 替换文件中的一行将另一行移动到上一级

javascript - 什么是窗口.窗口?

javascript - 如何使用 javascript 更新 HTML 内容但使用 PHP 获取内容