【发布时间】:2011-07-24 04:35:17
【问题描述】:
我试图创建一个函数来替换数组中的多个正则表达式值。如果数组不包含任何类型的引号,则此方法有效,当我想在我的模式中使用逗号时,这是有问题的。所以我一直在尝试寻找另一种方式来服务这种模式,但没有运气。有什么想法吗?
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;
}
工作:
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;
}
【问题讨论】:
标签: javascript regex arrays function loops