我想將看起來像正則表達式的字符串轉換爲正則表達式。Javascript:將字符串轉換爲正則表達式
我想這樣做的原因是因爲我動態構建了要在正則表達式中使用的關鍵字列表。例如,使用文件擴展名,我將提供我想包含在正則表達式中的可接受擴展名列表。
var extList = ['jpg','gif','jpg'];
var exp = /^.*\.(extList)$/;
感謝,任何幫助表示讚賞
我想將看起來像正則表達式的字符串轉換爲正則表達式。Javascript:將字符串轉換爲正則表達式
我想這樣做的原因是因爲我動態構建了要在正則表達式中使用的關鍵字列表。例如,使用文件擴展名,我將提供我想包含在正則表達式中的可接受擴展名列表。
var extList = ['jpg','gif','jpg'];
var exp = /^.*\.(extList)$/;
感謝,任何幫助表示讚賞
你會想用正則表達式的構造函數:
var extList = ['jpg','gif','jpg'];
var reg = new RegExp('^.*\\.(' + extList.join('|') + ')$', 'i');
var extList = "jpg gif png".split(' ');
var exp = new RegExp("\\.(?:"+extList.join("|")+")$", "i");
需要注意的是:
(?:...)
。哦,你原來的擴展名列表中包含 'JPG' 兩次:)
可以使用RegExp對象:
var extList = ['jpg','gif','jpg'];
var exp = new RegExp("^.*\\.(" + extList.join("|") + ")$");
另一種方法可以使用eval(.. ),但創建Regexp對象是更好的解決方案。 – 2011-01-13 04:30:50