正则表达式中如何添加变量

如果给义一个字符串或是数组加入变量,是非常简单的事情,但是我们不能用这种常规思维来给正则表达式加入变量,比如

var param = 3;
var reg = "/^[0-9]+"+param+"[a-z]+$/";var reg = /^[0-9]+"+param+"[a-z]+$/;var reg = /^[0-9]+$/+param+/^[a-z]+$/;

首先不考虑准确性,这写法就怎么看怎么别扭,无论怎么写,都会被当作正则的一部分来处理。
这个时候 构造函数 出场,既然已经定义好的表达式不能加,那就在构造表达式的时候添加总行了吧,如下:

var param = 3;
var reg = new RegExp("^[0-9]+"+param+"[a-z]+$","g");//得到:/^[0-9]+3[a-z]+$/

第二个参数根据具体情况添加,如"g"全局检索,可有可无。
完美解决 ~

猜你喜欢

转载自blog.csdn.net/qq_40776187/article/details/84326751