我有一些代码在小数点后匹配一定数量的数字。目前,我有以下内容:
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));
但是,现在,我总是0
获得x
。
答案 0 :(得分:3)
如果要使用动态构建的模式,则必须使用Regexp
对象:
var re = new RegExp('^\\d+(?:\\.\\d{0,' + count + '})?');
答案 1 :(得分:0)
这会对你有帮助。
var pattern = '^\\d+(?:\\.\\d{0,' + '5' + '})?',
reg=new RegExp(pattern),
x = Number(input.toString().match(reg));
答案 2 :(得分:0)
mask: new RegExp(`^[a-zA-Z0-9]{0,${maxLength}}$`)
对我有用