簡體   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