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