繁体   English   中英

JavaScript 中的动态正则表达式模式

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM