我有一个字符串“日期介于2018年3月至2018年6月”,或者该字符串可能类似于
“显示日期为2018年3月至2018年6月”。
所以我想将第一个月年(即2018年3月)存储在一个变量中,将下一个月年(即2018年6月)存储在另一个变量中。
月份可以是12月,10月等。
我想在 JavaScript 中编写代码,以将任意两个月的年份存储在2个单独的变量中。
任何帮助,将不胜感激。
答案 0 :(得分:6)
您可以为此使用以下RegExp
:
const str = "Show me the date between March 2018 and June 2018";
const [start, end] = str.match(/((January|February|March|April|May|June|July|August|September|October|November|December) \d{4})/gi);
console.log(start, end);
答案 1 :(得分:1)
您可以使用正则表达式获取字符串的每个 month-year 对并将每个匹配项存储到数组中
代码如下:
var str = "Show me the date between March 2018, June 2018 and December 2019";
var res = str.match(/(\w*\s\d{4})/g);
console.log(res);
现在,您只需要遍历数组并对每个值做任何您想做的事。
希望对您有帮助。
答案 2 :(得分:0)
尽管您的问题写得不太正确,但以下代码可以正常工作:
const months = [
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December'
];
const reg = new RegExp(`(${months.join('|')})\\s[\\d]{4}`, 'gi');
const str = 'Date between March 2018 and June 2018';
const matches = str.match(reg).map((item) => item.split(' '));
console.log(matches)
答案 3 :(得分:-1)
您可以使用split函数分割字符串并提取有用的信息。
我已经在jsfiddler上为您编写了一个脚本。
请看看here
var temp="Date between March 2018 and June 2018";
var fields=temp.split(' ');
var date2=fields[fields.length-2] +" "+fields[fields.length-1];
var date1=fields[fields.length-5] +" "+fields[fields.length-4];
alert(date1);//March 2018
alert(date2);//June 2018