![](/img/trans.png)
[英]JavaScript regex with variable pattern using RegExp constructor
[英]javascript syntax for regex using variable as pattern
我有一個帶動態數值的變量patt
var patt = "%"+number+":";
在test()方法中使用它的正則表達式語法是什么?
我一直在使用這種格式
var patt=/testing/g;
var found = patt.test(textinput);
TIA
是的,你幾乎擁有它。 您只需將正則表達式字符串傳遞給RegExp構造函數即可。 然后,您可以調用其test()
函數。
var matcher = new RegExp("%" + number + ":", "g");
var found = matcher.test(textinput);
希望有幫助:)
您必須使用正則表達式對象而不是正則表達式文字來構建正則表達式。
從您的問題來看,我不確定您的匹配條件是什么,但如果您想將數字與'%'和':'標記相匹配,您可以執行以下操作:
var matcher = new RegExp("%" + num_to_match + ":", "g");
你可以在這里閱讀更多內容: https : //developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp
你走在正確的軌道上
var testVar = '%3:';
var num = 3;
var patt = '%' + num + ':';
var result = patt.match(testVar);
alert(result);
示例: http : //jsfiddle.net/jasongennaro/ygfQ8/2/
你不應該使用number
。 雖然它不是保留字,但它是預定義的類/對象名之一。
你的模式很好,而不會把它變成一個正則表達式的文字。
這些天很多人都喜歡用babel語言編寫ES6語法。 如果這是你的情況,那么有一個沒有字符串連接的選項:
const matcher = new RegExp(`%${num_to_match}:`, "g");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.