我試圖創建一個函數來替換數組中的多個正則表達式值。這適用於數組不包含任何類型的引號,這是有問題的,當我想在我的模式中使用逗號。所以我一直在試圖找到一種替代方式來服務這種模式,但沒有運氣。有任何想法嗎?帶正則表達式的Javascript正則表達式陣列
function removeCharacters(str){
//ucpa = unwanted character pattern array
//var ucpa = [/{/g,/}/g,/--/g,/---/g,/-/g,/^.\s/];
var ucpa = ["/{/","/}/","/--/","/---/","/-/","/^.\s/","/^,\s/"];
for (var i = 0; i < ucpa.length; i++){
//does not work
var pattern = new RegExp(ucpa[i],"g");
var str = str.replace(pattern, " ");
}
return str;
}
WORKING:
function removeCharacters(str){
//ucpa = unwanted character pattern array
var ucpa = [/{/g,/}/g,/--/g,/---/g,/-/g,/^.\s/,/^,\s/];
for (var i = 0; i < ucpa.length; i++){
var str = str.replace(ucpa[i], " ");
}
return str;
}
精製:
function removeCharacters(str){
var pattern = /[{}]|-{1,3}|^[.,]\s/g;
str = str.replace(pattern, " ");
return str;
}
錯別字對不起!意思是'^,\ s'。我不喜歡使用陣列的部分原因是因爲您可能容易錯位逗號。單一的正則表達式岩石! – ThomasReggi
單個正則表達式的+1。 – jfriend00
好吧,現在它是有道理的。 +1 – ridgerunner