关于regexp的日期extjs的信息

发布时间:2023-12-08

关于regexp的日期extjs的信息

更新:<time datetime="2022-11-15 18:08">2022-11-15 18:08</time>

本文目录一览:

  1. extjs 怎么使用正则表达式
  2. Extjs怎么格式化Grid的日期列
  3. ExtJs 3.4 日期控件DateField的范围控制
  4. extjs获取当前时间并且怎么取7天前的时间

extjs 怎么使用正则表达式

javascript本身支持正则表达式,和extjs没有关系。 javascript中可以用反斜线将字符串括起来就表示一个正则表达式模式,例如

var regexp = /[0-9]{2,5}/; //regexp变量值就是一个正则模式,匹配2~5位数字

也可以用创建对象的标准语法来表示,例如:

var regexp = new RegExp("[0-9]{2,5}"); //和上例等效

模式可以有附加参数(非必需),包括: 包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。可以组合使用,例如“ig”。 例如:

var regexp = /[a-n]{3}/i; //忽略大小写,匹配3个a到n的英文字母
//也可以写成var regexp = new RegExp("[a-n]{3}","i")

js正则表达式有多个方法,常用的有exec、test、compile。

  • test() 方法检索字符串中的指定值。返回值是 true 或 false。
  • exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。
  • compile() 方法用于改变 RegExp。

Extjs怎么格式化Grid的日期列

在Grid的cm里面定义列的时候使用renderer 属性进行修改日期格式。由于在用.net把ListT转成json的时候会把日期类型转化成不是常用的格式所以我们需要利用js把他转换过来。 第一步需要把他转换成js认识的Date格式:

new Date(parseInt(val.substring(6, val.length - 2)))

第二步再把Date按照你的要求进行转化,我这里是扩展了一个format方法

Date.prototype.format = function(format) {
  var o = {
    "M+": this.getMonth() + 1, //month
    "d+": this.getDate(), //day
    "h+": this.getHours(), //hour
    "m+": this.getMinutes(), //minute
    "s+": this.getSeconds(), //second
    "q+": Math.floor((this.getMonth() + 3) / 3), //quarter
    "S": this.getMilliseconds() //millisecond
  }
  if (/(y+)/.test(format))
    format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
  for (var k in o)
    if (new RegExp("(" + k + ")").test(format))
      format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
  return format;
}

下面是具体Grid日期列的定义

{
  dataIndex: 'BillDate',
  header: '用电日期',
  hidden: false,
  renderer: function(val) {
    return new Date(parseInt(val.substring(6, val.length - 2))).format('yyyy-MM-dd')
  },
  sortable: false
}

ExtJs 3.4 日期控件DateField的范围控制

就是要这样的效果吧。

{
  xtype: 'datefield',
  width: '70',
  format: "Y-m-d",
  id: 'date',
  value: new Date(),
  disabledDays: [0, 1, 2, 3, 4, 6] //这样加这个属性,禁用日期
}

extjs获取当前时间并且怎么取7天前的时间

很简单哦

var now = new Date(new Date() - 7 * 24 * 60 * 60 * 1000);
alert(now);

这个是当前时间,我测试已经更可以弹出了。 然后再用extjs格式化一下。

var end = now.format('Y-m-d H:i:s');

就可以了 没有Ext.Date.format()这个函数