配列の複数の正規表現値を置き換える関数を作成しようとしました。配列に何らかの種類の引用符が含まれていない場合、これはうまくいきます。これは私のパターンにカンマを使用するときに問題になります。だから私は運がないパターンを提供する別の方法を見つけることを試みてきました。何か案は?ループ付き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;
}
REFINED:
function removeCharacters(str){
var pattern = /[{}]|-{1,3}|^[.,]\s/g;
str = str.replace(pattern, " ");
return str;
}
Typo申し訳ありません! '^、\ s'を意味します。私が配列を使うのが好きでない理由の1つは、あなたが簡単にカンマを置き忘れてしまうからです。単一の正規表現の岩! – ThomasReggi
+1 for single regex。 – jfriend00
さて、それは理にかなっています。 +1 – ridgerunner