精华内容
下载资源
问答
  • 这次给大家带来js验证出生日期正则表达式,实现js验证出生日期正则表达式的注意事项有哪些,下面就是实战案例,一起来看一下。简言在表单验证中,经常会用正则表达式做出生日期校验。本文把出生日期分割成几个部分,...

    这次给大家带来js验证出生日期正则表达式,实现js验证出生日期正则表达式的注意事项有哪些,下面就是实战案例,一起来看一下。

    简言

    在表单验证中,经常会用正则表达式做出生日期校验。本文把出生日期分割成几个部分,分步地介绍了实现一个出生日期校验的完整过程。相信您在理解了本篇的内容后,对编写正则表达式会有更深入的理解和更强的信心。

    3f56ef103b8ced4a004d56dda97b9095.png

    我们将一个形式如 2018-06-15 的出生日期分割个年份,月份和日期三个组成部分,分别来编写相应的正则。

    1 年份正则

    首先给出年份正则表达式的规则定义:年份由4位数字组成

    只接受19,20开头的年份

    根据以上规则,很容易写出年份的正则表达式:var pattern = /^(19|20)\d{2}$/;

    //输出 true

    console.log(pattern.test("2008"));

    其中/ /两个斜杠及其中间的字符是正则表达式直接量的定义;^表示匹配字符串的开头,$表示匹配字符串的结尾;^(19|20)表示匹配以19或20开头的字符串,一对小括号作用是将几项组合为一个单元;而\d{2}表示匹配任意ASCII数字2次,\d等价于[0-9],而{2}则表示匹配前一项2次。

    上述正则表达式可以匹配1900至2099这些年份,如果想限制年份的范围,增加规则如下:年份起始于1920年

    年份终止于2018年

    根据以上规则,变更正则表达式如下:var pattern = /^(19[2-9]\d{1})|(20((0[0-9])|(1[0-8])))$/;

    //输出 false

    console.log(pattern.test("1916"));

    //输出 true

    console.log(pattern.test("2008"));

    //输出 false

    console.log(pattern.test("2022"));

    2 月份正则

    首先给出月份正则表达式的规则定义:月份可以是1-12

    月份如果是1-9,则前面可加0

    根据以上规则,给出如下正则及简单测试:var pattern = /^((0?[1-9])|(1[0-2]))$/;

    //输出 false

    console.log(pattern.test("19"));

    //输出 true

    console.log(pattern.test("02"));

    //输出 true

    console.log(pattern.test("2"));

    //输出 true

    console.log(pattern.test("11"));

    3 日期正则

    首先给出日期正则表达式的规则定义:日期可以是1-31

    如果日期是1-9,则前面可加0

    根据以上规则,给出如下正则及简单测试:var pattern = /^((0?[1-9])|([1-2][0-9])|30|31)$/;

    //输出 false

    console.log(pattern.test("32"));

    //输出 true

    console.log(pattern.test("02"));

    //输出 true

    console.log(pattern.test("2"));

    4 组合校验

    根据上述的年份正则,月份正则,日期正则组合形成出生日期的正则表达式:var pattern = /^((19[2-9]\d{1})|(20((0[0-9])|(1[0-8]))))\-((0?[1-9])|(1[0-2]))\-((0?[1-9])|([1-2][0-9])|30|31)$/;

    //输出 true

    console.log(pattern.test("1923-3-18"));

    //输出 true

    console.log(pattern.test("1923-4-31"));

    //输出 true

    console.log(pattern.test("1923-2-29"));

    //输出 true

    console.log(pattern.test("2016-2-29"));

    从以上测试结果可以看出,上述正则验证还不完善,主要是2,4,6,9,11月份的天数问题。

    5 完善

    根据第4步的问题,增加限定规则如下:4,6,9,11月没有31日

    2月平年是28天

    2月闰年是29天

    平年闰年判定:

    能被4整除的年份是闰年,不能被4整除的年份是平年。但是如果是整百年,就只有能被400整除才是闰年,否则就是平年。

    根据新增规则及说明,给出下面正则函数及测试:var checkBirth = function (val) {

    var pattern = /^((?:19[2-9]\d{1})|(?:20(?:(?:0[0-9])|(?:1[0-8]))))\-((?:0?[1-9])|(?:1[0-2]))\-((?:0?[1-9])|(?:[1-2][0-9])|30|31)$/;

    var result = val.match(pattern);

    if(result != null) {

    var iYear = parseInt(result[1]);

    var month = result[2];

    var date = result[3];

    if(/^((0?[469])|11)$/.test(month) && date == '31') {

    return false;

    } else if(parseInt(month) == 2){

    if((iYear % 4 ==0 && iYear % 100 != 0) || (iYear % 400 == 0)) {

    if(date == '29') {

    return true;

    }

    }

    if(parseInt(date) > 28) {

    return false;

    }

    }

    return true;

    }

    return false;

    }

    //输出 true

    console.log(checkBirth("1923-3-18"));

    //输出 false 4月份没有31日

    console.log(checkBirth("1923-4-31"));

    //输出 false 平年

    console.log(checkBirth("1923-2-29"));

    //输出 true 闰年

    console.log(checkBirth("2016-2-29"));

    上述正则表达式中利用了String的match()方法,该方法唯一参数是一个正则表达式,返回的是一个由匹配结果组成的数组。数组的第一个元素就是匹配的字符串,余下的元素则是正则表达式中用圆括号括起来的子表达式。而(:?...)这种形式多次出现,该种方式表示只是把项组合到一个单元,但不记忆与该组相匹配的字符。利用该种方法按照正则匹配的顺序分别取出了年月日项,以便后序比较。

    根据上述分析与测试,我们不但实现了年月日的正则的一般判定,还实现了日期范围及2,4,6,9,11月等特殊月份天数的处理,测验结果达到了我们设定的目标。

    根据上述讲解和分析,我们可以调整相应的限定规则,使其满足于特定场景下的项目需要。

    延伸

    根据 V2EX网友 xiangyuecn 的意见,上述checkBirth的逻辑代码太多,确实有点 low。现将上述代码更新如下:var checkBirth = function (val) {

    var pattern = /^((19[2-9]\d{1})|(20((0[0-9])|(1[0-8]))))\-((0?[1-9])|(1[0-2]))\-((0?[1-9])|([1-2][0-9])|30|31)$/;

    if(pattern.test(val)) {

    var date = new Date(val);

    var month = val.substring(val.indexOf("-")+1,val.lastIndexOf("-"));

    return date && (date.getMonth()+1 == parseInt(month));

    }

    return false;

    }

    相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

    推荐阅读:

    展开全文
  • 将以YYYY-MM-DD格式验证日期的正则表达式如下:^(19|20)\d\d[\-\/.](0[1-9]|1[012])[\-\/.](0[1-9]|[12][0-9]|3[01])$它将验证年份从19或20开始,该月份不大于12且不等于0且该日期不大于31且不等于0.使用您的初始示例...

    你的正则表达式没有用,因为你有未转义/分隔符.

    将以YYYY-MM-DD格式验证日期的正则表达式如下:

    ^(19|20)\d\d[\-\/.](0[1-9]|1[012])[\-\/.](0[1-9]|[12][0-9]|3[01])$

    它将验证年份从19或20开始,该月份不大于12且不等于0且该日期不大于31且不等于0.

    使用您的初始示例,您可以像这样测试它:

    $date_regex = '/^(19|20)\d\d[\-\/.](0[1-9]|1[012])[\-\/.](0[1-9]|[12][0-9]|3[01])$/';

    $hiredate = '2013-14-04';

    if (!preg_match($date_regex, $hiredate)) {

    echo '
    Your hire date entry does not match the YYYY-MM-DD required format.
    ';

    } else {

    echo '
    Your date is set correctly
    ';

    }

    展开全文
  • 转:http://www.jb51.net/article/98069.htm 1949-2100 var reg=/^([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})$/; if(!reg.test(year) ){ alert("请输入符合规范的年份!")...

    转:http://www.jb51.net/article/98069.htm

     1949-2100

    var reg=/^([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})$/;
            if(!reg.test(year) ){
                alert("请输入符合规范的年份!");
                return false;
      }

    1.在input框中只能输入金额,其实就是只能输入最多有两位小数的数字 //第一种在input输入框限制

    <input type="text" maxlength="8" class="form-control" id="amount" style="margin-right: 2px;" value="" onChange="count();" οnkeyup="if (this.value==this.value2) return; if (this.value.search(/^\d*(?:\.\d{0,2})?$/)==-1) this.value=(this.value2)?this.value2:'';else this.value2=this.value;">元
    //第二种对于表单动态增加的方式,只能在js方法中验证。
    var amount=$("#amount").val();
    if (amount.search(/^\d*(?:\.\d{0,2})?$/)==-1) {
    alert("金额格式不对,最多有两位小数");
    return false;
    }

    2.验证邮箱格式

        
    var reg=/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
    var email=$("#email").val();
    if(!reg.test(email) ){
    alert("请输入符合规范的邮箱账号!");
    return false;
    }

    3.密码采用数字、字母、特殊字符且长度为8-20位

        
    function validatePwd(str) {
    if (/^.*?[\d]+.*$/.test(str) && /^.*?[A-Za-z]/.test(str)
    && /^.*?[~/`!@#$%^&*()_+|{}?;:><\-\]\\[\/].*$/.test(str) && /^.{8,20}$/.test(str)) {
    return true;
    }
    return false;
    }

    4.验证电话号码

        
    /**
    * 验证电话号码
    * @param phoneValue 要验证的电话号码
    * @returns 匹配返回true 不匹配返回false
    */
    function validatePhone(phoneValue) {
    phoneValue = valueTrim(phoneValue);
    var reg = /^[1][0-9]{10}$/;
    return reg.test(phoneValue);
    }

    5.判断是否是汉字

        
    /**
    * 判断是否是汉字
    *
    * @param charValue
    * 要验证的数据
    * @returns 匹配返回true 不匹配返回false
    */
    function isCharacter(charValue) {
    var reg = /^[\u4e00-\u9fa5]{0,}$/;
    return reg.test(charValue);
    }

    6.是否为字母:true:是,false:不是

    function isChar(charValue){
    var charPattern=/^[a-zA-Z]*$/; //是否为字母
    result=charPattern.test(charValue);
    return result;
    }

    7.判断是否为数字

    function isNum(numValue){
    var numPattern=/^\d*$/; //数字的正则表达式
    result=numPattern.test(numValue);
    return result;
    }

    8.整数的正则表达式

    function isInt(intValue){
    var intPattern=/^0$|^[1-9]\d*$/; //整数的正则表达式
    result=intPattern.test(intValue);
    return result;
    }

    9.是否为字母和数字

    function isCharNum(flagValue){
    var flagPattern=/^[a-zA-Z0-9]*$/; //是否为字母和数字
    result=flagPattern.test(flagValue);
    return result;
    }

    10.检验18位身份证号码

    /**
    * 检验18位身份证号码(15位号码可以只检测生日是否正确即可,自行解决)
    *
    * @param idCardValue
    * 18位身份证号
    * @returns 匹配返回true 不匹配返回false
    */
    function idCardVildate(cid) {
    var arrExp = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ];// 加权因子
    var arrValid = [ 1, 0, "X", 9, 8, 7, 6, 5, 4, 3, 2 ];// 校验码
    var reg = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;
    if (reg.test(cid)) {
    var sum = 0, idx;
    for (var i = 0; i < cid.length - 1; i++) {
    // 对前17位数字与权值乘积求和
    sum += parseInt(cid.substr(i, 1), 10) * arrExp[i];
    }
    // 计算模(固定算法)
    idx = sum % 11;
    // 检验第18为是否与校验码相等
    return arrValid[idx] == cid.substr(17, 1).toUpperCase();
    } else {
    return false;
    }
    }

    11.验证15位数身份证号码中的生日是否是有效生日

        
    function isValidityBrithBy15IdCard(idCard15) {
    var year = idCard15.substring(6, 8);
    var month = idCard15.substring(8, 10);
    var day = idCard15.substring(10, 12);
    var temp_date = new Date(year, parseFloat(month) - 1, parseFloat(day));
    // 对于老身份证中的你年龄则不需考虑千年虫问题而使用getYear()方法
    if (temp_date.getYear() != parseFloat(year)
    || temp_date.getMonth() != parseFloat(month) - 1
    || temp_date.getDate() != parseFloat(day)) {
    return false;
    } else {
    return true;
    }
    }

    12.验证18位数身份证号码中的生日是否是有效生日

        
    function isValidityBrithBy18IdCard(idCard18) {
    var year = idCard18.substring(6, 10);
    var month = idCard18.substring(10, 12);
    var day = idCard18.substring(12, 14);
    var temp_date = new Date(year, parseFloat(month) - 1, parseFloat(day));
    // 这里用getFullYear()获取年份,避免千年虫问题
    if (temp_date.getFullYear() != parseFloat(year)
    || temp_date.getMonth() != parseFloat(month) - 1
    || temp_date.getDate() != parseFloat(day)) {
    return false;
    } else {
    return true;
    }
    }

    PS:js验证时间正则表达式

    验证时间格式为:2012-01-31 09:00:22

    var reDateTime = /^(?:19|20)[0-9][0-9]-(?:(?:0[1-9])|(?:1[0-2]))-(?:(?:[0-2][1-9])|(?:[1-3][0-1])) (?:(?:[0-2][0-3])|(?:[0-1][0-9])):[0-5][0-9]:[0-5][0-9]$/;
    var isDateTime = reDateTime.test('2012-01-31 09:00:22');

    转载于:https://www.cnblogs.com/yuki-l/p/9118428.html

    展开全文
  • package org.mike.test;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test {public static void main(String[] args) {//Pattern pattern = Pattern.compile("\\d\\d\\d\\d-\\d\\d-...

    package org.mike.test;

    import java.util.regex.Matcher;

    import java.util.regex.Pattern;

    public class Test {

    public static void main(String[] args) {

    //Pattern pattern = Pattern.compile("\\d\\d\\d\\d-\\d\\d-\\d\\d");//也可以

    //Pattern pattern = Pattern.compile("\\d{4}-\\d{2}-\\d{2}");

    //Pattern pattern = Pattern.compile("\\d{4}-\\d{1,2}-\\d{1,2}");

    // Pattern pattern = Pattern.compile("\\d{4}-\\d[0-1]\\d{1}-\\d{1,2}");

    // Matcher matcher = pattern.matcher("2011-12-23");

    // System.out.println(matcher.matches());

    //yyyy/MM/dd

    //Pattern p = Pattern.compile("^((\\d{2}(([02468][048])|([13579][26]))[\\/\\/\\s]?((((0?"+"[13578])|(1[02]))[\\/\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))" +"|(((0?[469])|(11))[\\/\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|" +"(0?2[\\/\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][12"+"35679])|([13579][01345789]))[\\/\\/\\s]?((((0?[13578])|(1[02]))" +"[\\/\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))" +"[\\/\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\/\\/\\s]?((0?[" +"1-9])|(1[0-9])|(2[0-8]))))))");

    //yyyy-MM-dd

    Pattern p = Pattern.compile("^((\\d{2}(([02468][048])|([13579][26]))[\\-\\-\\s]?((((0?" +"[13578])|(1[02]))[\\-\\-\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))" +"|(((0?[469])|(11))[\\-\\-\\s]?((0?[1-9])|([1-2][0-9])|(30)))|" +"(0?2[\\-\\-\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][12" +"35679])|([13579][01345789]))[\\-\\-\\s]?((((0?[13578])|(1[02]))" +"[\\-\\-\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))" +"[\\-\\-\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\-\\s]?((0?[" +"1-9])|(1[0-9])|(2[0-8]))))))");

    String s = "2003-03-20";

    System.out.println(s + " " + p.matcher(s).matches());

    // s = "2004/02/29";

    // System.out.println(s + " " + p.matcher(s).matches());

    //

    // s = "2004/04/31";

    // System.out.println(s + " " + p.matcher(s).matches());

    //

    // s = "2004/04/30";

    // System.out.println(s + " " + p.matcher(s).matches());

    //

    // s = "2004/04/30";

    // System.out.println(s + " " + p.matcher(s).matches());

    //

    // s = "2004/09/30";

    // System.out.println(s + " " + p.matcher(s).matches());

    }

    }

    @Test

    public void Testregexp(){

    //Pattern p = Pattern.compile("^((\\d{2}(([02468][048])|([13579][26]))[\\/\\/\\s]?((((0?"+"[13578])|(1[02]))[\\/\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))" +"|(((0?[469])|(11))[\\/\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|" +"(0?2[\\/\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][12"+"35679])|([13579][01345789]))[\\/\\/\\s]?((((0?[13578])|(1[02]))" +"[\\/\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))" +"[\\/\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\/\\/\\s]?((0?[" +"1-9])|(1[0-9])|(2[0-8]))))))");

    Pattern p = Pattern.compile("^((\\d{2}(([02468][048])|([13579][26]))[\\-\\-\\s]?((((0?" +"[13578])|(1[02]))[\\-\\-\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))" +"|(((0?[469])|(11))[\\-\\-\\s]?((0?[1-9])|([1-2][0-9])|(30)))|" +"(0?2[\\-\\-\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][12" +"35679])|([13579][01345789]))[\\-\\-\\s]?((((0?[13578])|(1[02]))" +"[\\-\\-\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))" +"[\\-\\-\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\-\\s]?((0?[" +"1-9])|(1[0-9])|(2[0-8]))))))");

    String s = "2003-02-20";

    System.out.println(s + " " + p.matcher(s).matches());

    s = "2004/02/29";

    System.out.println(s + " " + p.matcher(s).matches());

    s = "2004/04/31";

    System.out.println(s + " " + p.matcher(s).matches());

    s = "2004/04/30";

    System.out.println(s + " " + p.matcher(s).matches());

    s = "2004/04/30";

    System.out.println(s + " " + p.matcher(s).matches());

    s = "2004/09/30";

    System.out.println(s + " " + p.matcher(s).matches());

    }

    以上运行结果:

    2003-02-20 true

    2004/02/29 false

    2004/04/31 false

    2004/04/30 false

    2004/04/30 false

    2004/09/30 false

    @Test

    public void Testexp(){

    Pattern p = Pattern.compile("^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\\s(((0?[0-9])|([1-2][0-3]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))?$");

    String s = "2003-02-29 23:59:59";

    System.out.println(s + " " + p.matcher(s).matches());

    s = "2004-02-29 23:59:59";

    System.out.println(s + " " + p.matcher(s).matches());

    s = "2004-04-31 0:59:59";

    System.out.println(s + " " + p.matcher(s).matches());

    s = "2004-04-30 01:11:0";

    System.out.println(s + " " + p.matcher(s).matches());

    s = "2004-04-30 0:0:0";

    System.out.println(s + " " + p.matcher(s).matches());

    s = "2004-04-30 00:00:59";

    System.out.println(s + " " + p.matcher(s).matches());

    }

    以上运行结果:

    2003-02-29 23:59:59 false

    2004-02-29 23:59:59 true

    2004-04-31 0:59:59 false

    2004-04-30 01:11:0 true

    2004-04-30 0:0:0 true

    2004-04-30 00:00:59 true

    展开全文
  • 正则表达式校验年份

    万次阅读 2019-01-10 16:43:20
    0001 - 9999,匹配YYYY的正则表达式为: [0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3} 其中 [0-9] 也可以表示为 \d,但 \d 不如 [0-9] 直观,因此下面我将一直采用 [0-9]用正则表达式...
  • 正则表达式

    2014-12-03 14:51:39
    由于某些字符类非常常用,所以JavaScript的正则表达式语法包含一些特殊字符和转义序列来表示这些常用的类.例如, \s 匹配的是空格符,制表符和其它空白符, \s 匹配的则是空白符之外的任何字符. 正则表灰式的字符类 ...
  • 看火龙果写了一个验证日期Java正则表达式,就给转了过来 由于使用到了反向预搜索模式“(?&lt;=)”和“(?&lt;!)”,所以这个只能在Java中使用,不能在JavaScript中使用,JavaScript不支持反向预搜索。支持...
  • 验证 BLR+年份月份+001 或者 BLF+年份月份+001 (例如:BLR201510001 或者BLF201510001) js 应该怎么写这个正则表达式
  • 日期格式验证的正则表达式详解

    千次阅读 2010-11-28 17:49:00
    ---- 考虑平年情况---------------------- //**********************年份范圍0001-9999************************* //[1-9]/d{3} 千位數大于0 ///d[1-9]/d{2} 百位數大于0 ///d{2}[1-9]/d 
  • JS的正则表达式

    2013-02-01 17:04:26
    javascript正则表达式验证日期格式,验证正确的年份月份和日期 js正则验证日期时间: var reDateTime = /^(?:19|20)[0-9][0-9]-(?:(?:0[1-9])|(?:1[0-2]))-(?:(?:[0-2][1-9])|(?:[1-3][0-1])) (?:(?:[0-2][0-3])...
  • 在表单验证中,经常会用正则表达式做出生日期校验。本文把出生日期分割成几个部分,分步地介绍了实现一个出生日期校验完整过程。相信您在理解了本篇内容后,对如何编写和如何应用正则表达式会有进一步理解和...
  • 第一步,验证年份 年份范围为 0001 - 9999,匹配YYYY的正则表达式为: [0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3} 第二步,验证月份和日期 1. 月份为[1, 3, 5, 7, 8, 10, 12],...
  • 在表单验证中,经常会用正则表达式做出生日期校验。本文把出生日期分割成几个部分,分步地介绍了实现一个出生日期校验完整过程。相信您在理解了本篇内容后,对如何编写和如何应用正则表达式会有进一步理解和...
  • 1要写的正则表达式要求 交易系统应在用户交互页面对项目批复文号进行验证,除要求不能为空且不包含非法字符外,固定资产投资项目还应将项目批复文号由非格式化字段调整为三个单独字段,分别代表发文机关代字、年份...
  • 我始终没有找到完美的日期验证正则表达式,这要问题就是对...下面给出代码,主要是为 String 原型添加 isDate 方法:下面的正则表达式可以看成是由三个正则表达式拼接而成,瑞年二月判断、非闰年二月判断、其它月...
  • 比较完美日期验证正则表达式(2011-6-1更新)

    千次阅读 热门讨论 2007-06-22 16:22:00
    我始终没有找到完美日期验证正则表达式,这要问题就是对瑞年判断。 我们知道,每 400 年会有 97 个闰年(参见高中《地理》课本),完整瑞年判断是这样: 瑞年的年份 1) 若是整百年,能被 400 整除 否则...
  • 考虑到这个正则表达式仅仅是用作验证,所以捕获组没有意义,只会占用资源,影响匹配效率,所以可以使用非捕获组来进行优化。 ^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2...
  • 3、出生年份1900-2099,每月天数也进行相关验证(考虑闰月情况), 4、校验规则详见,这个写比较详细和清楚,相信看过后都可以自己写一个, https://jingyan.baidu.com/article/7f41ececff944a593d095c8c.html...
  • 正则表达式之身份证号验证

    千次阅读 2011-07-20 09:29:48
    分析:身份证号码结构为:地码 (身份证前六...生日期码 (身份证第七位到第十四位)表示编码对象出生年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。例如:1981年05月11日就用19810511表示。顺
  • (1)首先需要验证年份,显然,年份范围为 0001 - 9999,匹配YYYY的正则表达式为: [0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3} 或者:\d{3}[1-9]|\d{2}[1-9]\d{1}|\d{1}[1-9]\d{2}|...
  • 正则验证

    2016-08-28 11:43:02
    //正则表达式var regDate=/^([1-9]{1}[d]{3})-([d]{2})-([0-4]{1}[d]{1})$/ //年份var regTime=/^([d]{2})[d]{2})[d]{2})$/;//时间var regTel=/^(0[d]{2,3}[-])?([d]{2,3}[-])?([d]{7,8})$/;//常用电话var ...
  • JAVA 基础知识学习

    2017-03-26 11:01:45
    java 学习案列目录java 学习案列 ...java 正则表达式的语法案列 匹配验证-验证Email是否正确 在字符串中查询字符或者字符串 正则表达式验证IP地址 正则表达式鉴别非法电话号码 获取字符串中汉字个数ja
  • //正则表达式 var regDate=/^([1-9]{1}[d]{3})-([d]{2})-([0-4]{1}[d]{1})$/ //年份 var regTime=/^([d]{2})"images/smilies/frown.gif" border="0" alt="">[d]{2})"images/smilies/frown.gif" border=
  • 时间验证方法之一

    2009-04-11 15:07:00
    在过去时间验证对我来说有很大难度,这不仅要考虑很多年份算法,还有月日算法,也尝试用正则表达式验证是不是用户输入是时间,但这种做法不能当作验证正确时间标准,现在我有其它几种处理方法,其一是用了...

空空如也

空空如也

1 2 3
收藏数 56
精华内容 22
关键字:

验证年份的正则表达式