[英]Dynamic regex pattern in JavaScript
我有一些代码匹配小数点后的特定位数。 目前,我有以下内容:
var input = getValueFromUser();
var count = getCount();
var x = Number(input.toString().match(/^\d+(?:\.\d{0,1})?/));
alert(x);
这种方法总是得到小数点后的第一个数字。 但是,我想用count
中的值替换正则表达式中的 1 。 我怎么做? 我尝试了以下方法:
var pattern = '/^\d+(?:\.\d{0,' + count + '})?/';
var x = Number(input.toString().match(pattern));
但是,现在,我总是为x
得到0
。
如果要使用动态构建的模式,则必须使用Regexp
对象:
var re = new RegExp('^\\d+(?:\\.\\d{0,' + count + '})?');
这将对您有所帮助。
var pattern = '^\\d+(?:\\.\\d{0,' + '5' + '})?',
reg=new RegExp(pattern),
x = Number(input.toString().match(reg));
mask: new RegExp(`^[a-zA-Z0-9]{0,${maxLength}}$`)
它为我工作
var alien = 'ajay'+' $%';
var all=new RegExp(`${alien}`)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.