JS6用第一个数字作为其他变量的值写入regExp

时间:2018-04-27 05:40:11

标签: regex

我必须编写正则表达式进行验证。 我将classroomNumber作为整数值,并希望滚动编号以教室编号值作为第一位开头。如何在这种情况下编写regExp。 例如: 如果我的classroomNumber=5,那么我需要确保学生的滚动号码以5作为第一位开头,例如501,502,503,504,505...,依此类推。

1 个答案:

答案 0 :(得分:0)

您需要这样做:

var regex2 = new RegExp(fN + '\\d{2}');

但是你希望它从房间号开始,所以你需要像这样改变它:

var regex2 = new RegExp('^' + fN + '\\d{2}');

修改

如果您希望表达式与逗号分隔值匹配,则需要使用类似于以下内容的内容:

var regex2 = new RegExp('^' + fN + '\\d{2}(,' + fN + '\\d{2})*');

鉴于这样的事情:

var fN = 5;
var regex2 = new RegExp('^' + fN + '\\d{2}(,' + fN + '\\d{2})*');
var rooms = ['1,2,3,4,5,6','100,200,300,400,500,600','501,502,503,504,505','101,102,103,104,105'];
for (var i = 0; i < rooms.length; i++) {
    console.log(regex2.test(rooms[i]));
}

收率:

false
false
true
false

大多数情况下,您的方法存在的问题是,您似乎将圆括号:()与方括号混淆:[]。方括号用于表示要匹配的一组字符,没有特定的顺序。