Tho*_*ggi 0 javascript regex arrays loops function
我试图创建一个函数来替换数组中的多个正则表达式值.如果数组不包含任何类型的引号,这是有效的,当我想在我的模式中使用逗号时,这是有问题的.所以我一直试图找到另一种服务模式的方法,没有运气.有任何想法吗?
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;
}
Run Code Online (Sandbox Code Playgroud)
工作方式:
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;
}
Run Code Online (Sandbox Code Playgroud)
精制:
function removeCharacters(str){
var pattern = /[{}]|-{1,3}|^[.,]\s/g;
str = str.replace(pattern, " ");
return str;
}
Run Code Online (Sandbox Code Playgroud)
该RegExp
构造函数采用原始的表达,而不是包裹在/
字符.因此,你的所有正则表达式都包含两个/
s,这不是你想要的.
相反,您应该创建一组实际的正则表达式文字:
var ucpa = [ /.../g, /",\/.../g, ... ];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2237 次 |
最近记录: |