我试图创建一个函数来替换数组中的多个正则表达式值。这适用于数组不包含任何类型的引号,这是有问题的,当我想在我的模式中使用逗号。所以我一直在试图找到一种替代方式来服务这种模式,但没有运气。有任何想法吗?带正则表达式的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