繁体   English   中英

如何在Javascript中验证年份范围?

[英]How to validate year range in Javascript?

我有此正则表达式来验证年份:

/^(201[5-9]|202[0-5])/.test(year) ? true : false

如您所见,年份具有以下模式: current_year + 10.years ,如何在不进行这种硬编码的情况下做到这一点? 我需要像这样的东西,但是它在Ruby中: valid_years = (Time.now.year..(Time.now.year+10))

您可以构建正则表达式字符串,然后使用它创建正则表达式对象,这非常简单。 这是一个示例,尽管这是一起匆匆忙忙的事,所以您可以重构使其更简单易读,但它确实可以正常工作:

var start = 2015;
var text = '' + start;
var x = parseInt(start / 10, 10);
var y = start % 10;
var regexString = '^(' + text.substring(0, 3) + '[' + y + '-9]|' + text.substring(0, 2) + (parseInt(text[2]) + 1) + '[0';
if(y > 0)
    regexString += '-' + y;
regexString += '])';
console.log(regexString);

var regex = new RegExp(regexString);
var year = '2020';
var result = regex.test(year) ? true : false;
console.log(result);

这是一个有效的例子

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM