Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.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_Html_Json_Regex - Fatal编程技术网

试图在javascript的字符串中匹配年份

试图在javascript的字符串中匹配年份,javascript,html,json,regex,Javascript,Html,Json,Regex,我希望能够获取字符串数组: 下面是我正在使用的模拟数据 const归档={ “数据”:[{ “id”:1, “类型”:“存档”, “属性”:{ “姓名”:“员工敬业度汇总表”, “说明”:“此处为报告说明”, “创建日期”:“2018年3月21日”, “日期范围”:“2018年1月3日-2018年5月15日”, “数据集”:“设施A,护理部” } }, { “id”:1, “类型”:“存档”, “属性”:{ “名称”:“抽样调查1”, “说明”:“此处为报告说明”, “创建日期”:“2017年

我希望能够获取字符串数组:

下面是我正在使用的模拟数据

const归档={
“数据”:[{
“id”:1,
“类型”:“存档”,
“属性”:{
“姓名”:“员工敬业度汇总表”,
“说明”:“此处为报告说明”,
“创建日期”:“2018年3月21日”,
“日期范围”:“2018年1月3日-2018年5月15日”,
“数据集”:“设施A,护理部”
}
},
{
“id”:1,
“类型”:“存档”,
“属性”:{
“名称”:“抽样调查1”,
“说明”:“此处为报告说明”,
“创建日期”:“2017年3月21日”,
“日期范围”:“2017年1月3日-2017年5月15日”,
“数据集”:“设施A,护理部”
}
},
{
“id”:1,
“类型”:“存档”,
“属性”:{
“名称”:“抽样调查2”,
“说明”:“此处为报告说明”,
“创建日期”:“2016年3月21日”,
“日期范围”:“2016年1月3日-2016年5月15日”,
“数据集”:“设施A,护理部”
}
},
{
“id”:1,
“类型”:“存档”,
“属性”:{
“名称”:“抽样调查3”,
“说明”:“此处为报告说明”,
“创建日期”:“2015年3月21日”,
“日期范围”:“2015年1月3日-2015年5月15日”,
“数据集”:“设施A,护理部”
}
}
]
};
导出默认档案
var str=[
“2018年3月21日”,
“2017年3月21日f”,
“2016年3月21日”,
“2015年3月21日”,
“2014年3月21日”,
“2013年3月21日”,
“2012年3月21日”
]; 
//举办年会
让年份=[];
//迭代日期集合
for(设i=0;i1){
//替换所有非数字字符并修剪空白
设年份=拆分器[1]。替换(/\D/g')。修剪();
//将年值推送到新数组中
年。推(年);
}
}
//在控制台中查看结果
对数(年);

如果字符串的格式始终相同,则可以在
上拆分。我使用regex
/[^0-9]/gi
将年份中不是数字的任何内容替换为非字符
'
。这会阻止像
2017f
这样的事情包括f

var日期=[
“2018年3月21日”,
“2017年3月21日f”,
“2016年3月21日”,
“2015年3月21日”,
“2014年3月21日”,
“2013年3月21日”,
“2012年3月21日”
]; 
常数年=[];
用于(施工日期){
const year=date.split(“,”)[1]。替换(/[^0-9]/gi,”).trim();
年。推(年);
}

对数(年)只需匹配四位数字,至少对于您的情况如此

(str=>str.match(/\d{4}/)[0])

var日期字符串=[
“2018年3月21日”,
“2017年3月21日f”,
“2016年3月21日”,
“2015年3月21日”,
“2014年3月21日”,
“2013年3月21日”,
“2012年3月21日”
];
var years=dateStrings.map(str=>str.match(/\d{4}/)[0]);
var ul=年。减少((ul,年)=>{
var li=document.createElement('li');
li.html=年;
ul.儿童(li);
返回ul;
},document.createElement('ul');

文件.正文.附件(ul)使用匹配项并检查4位数字:
/\d{4}/

var str=[
“2018年3月21日”,
“2017年3月21日f”,
“2016年3月21日”,
“2015年3月21日”,
“2014年3月21日”,
“2013年3月21日”,
“2012年3月21日”
];
设ul=document.querySelector('ul')
str.forEach(日期=>{
让matches=date.match(/\d{4}/)
matches.length>0?(ul.innerHTML+=`
  • ${matches[0]}
  • `):null })

      试试这个:

      var存档={
      “数据”:[{
      “id”:1,
      “类型”:“存档”,
      “属性”:{
      “姓名”:“员工敬业度汇总表”,
      “说明”:“此处为报告说明”,
      “创建日期”:“2018年3月21日”,
      “日期范围”:“2018年1月3日-2018年5月15日”,
      “数据集”:“设施A,护理部”
      }
      },
      {
      “id”:1,
      “类型”:“存档”,
      “属性”:{
      “名称”:“抽样调查1”,
      “说明”:“此处为报告说明”,
      “创建日期”:“2017年3月21日”,
      “日期范围”:“2017年1月3日-2017年5月15日”,
      “数据集”:“设施A,护理部”
      }
      },
      {
      “id”:1,
      “类型”:“存档”,
      “属性”:{
      “名称”:“抽样调查2”,
      “说明”:“此处为报告说明”,
      “创建日期”:“2016年3月21日”,
      “日期范围”:“2016年1月3日-2016年5月15日”,
      “数据集”:“设施A,护理部”
      }
      },
      {
      “id”:1,
      “类型”:“存档”,
      “属性”:{
      “名称”:“抽样调查3”,
      “说明”:“此处为报告说明”,
      “创建日期”:“2015年3月21日”,
      “日期范围”:“2015年1月3日-2015年5月15日”,
      “数据集”:“设施A,护理部”
      }
      }
      ]
      };
      var yearsRange=archives.data.map(obj=>obj.attributes.date\u范围);
      var yearr=[];
      yearsRange.filter(项目=>{
      yearr.push(item.split('/')[2]。split('-')[0]);
      });
      
      控制台日志(“yearr”,yearr)请发布您的代码。附加f是否已启用
      var str = [
        "March 21, 2018",
        "March 21, 2017f",
        "March 21, 2016",
        "March 21, 2015",
        "March 21, 2014",
        "March 21, 2013",
        "March 21, 2012"
      ]; 
      
      //Array to hold the years
      let years = [];
      
      //Iterate your date collection
      for(let i = 0; i < str.length; i++){
          //Split the string on the comma
          const splitter = str[i].split(",");
      
          //If the split produces more than one string value, meaning we have a formatted date
          if(splitter.length > 1){
             //Replace any non digit characters and trim whitespace
             let year = splitter[1].replace(/\D/g,'').trim();
             //push year value into new array
             years.push(year);
      
          }
      }
      
      //View the results in console
      console.log(years);