我有两个字段可以输入多年,输入一个文本框输入VIN号码。我有regEx正是我想要它的工作方式,但我遇到的问题是如果一年没有选择,它仍然有效,因为VIN正在等待一年。我如何输入既不存在的日期,也不输入“选择年份”以同时适用于RegEx?下拉列表的默认值也适用于正则表达式
当我做的console.log(日期),则返回0,并且验证打到第二正则表达式,因为它是0小于1981
不知怎的,我必须写低于1981年但大于0我尝试了很多不同的组合,似乎无法找到正确的答案。
var date = Number($("#vehicleyear").val());
var re;
if (date >= 1981) {
re = new RegExp("^[A-HJ-NPR-Za-hj-npr-z\\d]{8}[\\dX][A-HJ-NPR-Za-hj-npr-z\\d]{2}\\d{6}$");
} else if (date < 1981) {
re = new RegExp("^[A-Za-z\\d]{2,17}$");
} else {}
return vin.match(re);
}, 'Please enter valid VIN.');
我试着在else语句中应用regEx,但也没有工作。 (话说如果任何东西,但仍然适用的正则表达式)
HTML
<label for="vehicleyear">Year:</label>
<select name="vehicleyear" id="vehicleyear" required>
<option value="" selected="selected">Select Year</option>
<option value="2017">2017</option>
<option value="2016">2016</option>
<!-- And so on -->
</select>
为什么不在检查VIN之前检查是否选择了一年?另外,空白的“else {}”有什么意义? – Adjit 2015-02-23 22:02:00
您的表单的HTML是什么样的?另外,它看起来并不是上面的全部函数 – Adjit 2015-02-23 22:08:18
对,那么HTML的外观与下拉菜单相似吗?每个菜单选项都必须有一个值。什么是默认的空值? – Adjit 2015-02-23 22:58:02