如何获得2011999年的regex
嗨! regex能支持2011999吗 所以我们“强制”前4位是2011年或2012年、2013年等,作为后面的一组数字?这意味着它将是2011+3位数 第一个数字必须始终为2011或2012等 我如何使用正则表达式得到它 这个怎么样如何获得2011999年的regex,regex,Regex,嗨! regex能支持2011999吗 所以我们“强制”前4位是2011年或2012年、2013年等,作为后面的一组数字?这意味着它将是2011+3位数 第一个数字必须始终为2011或2012等 我如何使用正则表达式得到它 这个怎么样 20(10 | 11 | 12 | 14 | 15 | 16 | 17 | 18 | 19 | 20)[0-9]{2,4}您可以使用交替: /(2011 | 2012 | 2013){3}/ 但这不是未来的证明。正则表达式不太支持将值约束到数值范围。试试这个 \b
20(10 | 11 | 12 | 14 | 15 | 16 | 17 | 18 | 19 | 20)[0-9]{2,4}您可以使用交替: /(2011 | 2012 | 2013){3}/ 但这不是未来的证明。正则表达式不太支持将值约束到数值范围。试试这个
\b201\d{4}\b
查看您的应用程序,这是学习和测试正则表达式的好地方
\b
是一个单词边界,这意味着在第一个数字之前不允许有数字和字母
这个正则表达式将找到一个以201开头,后跟4位数字的数字
如果你想限制更多的起始号码,你可以做如下的事情
\b201(?:1|2|3)\d{3}\b
或者使用字符类代替替换
\b201[123]\d{3}\b
这取决于您想要的值。对于这类问题,最好指定规则而不是示例,因为可能有许多不同的方法来解释示例 首先,如果希望前四位数字为201x,其中
x
为1到9(包括1到9),然后是三位数字,则可以使用如下内容:
^201[1-9][0-9]{3}$
(取决于您的正则表达式引擎的现代性
或者,如果您正在处理YYYYDDD
之类的事情,其中DDD
是一年中以零为基础的日期,并且您不希望在2011年之前有任何日期,那么您可能会遇到一个怪物,如:
^((201[1-9])|(20[2-9][0-9])|(2[1-9][0-9][0-9]))
(([0-2][0-9][0-9])|(3[0-5][0-9])|(36[0-5]))$
(虽然直到2999年,即使在非闰年也允许366天),在这一点上,你可能只想使用(更可读的)代码而不是正则表达式:-(<)/P>
这就是你正在考虑的一系列可能性,问题是“必须始终是2011年或2012年等”,不过,如果你能再锁定一点规范,我们有望消除更奇怪的可能性。一种非regexp的方式,这是未来的证明
var validFutureYears = 5;
the_value= parseInt(the_value, 10);
var vyear = new Date().getFullYear() * 1000;
var isValid = the_value >= vyear && the_value <= vyear + (validFutureYears * 1000);
var validfutureers=5;
_值=parseInt(_值,10);
var vyear=新日期().getFullYear()*1000;
var isValid=年值>=vyear&&U值“2011或2012等?”:允许哪些值?要了解正则表达式,请查看