2011-09-27 74 views
0

我有一个js简单的数组。通过字符数组转义字符串

array('p','(',')','?'); 

根据那个数组值我需要在js中转义字符串,我该怎么做?

例如字符串= 'hey?'和逃生阵列我有'?'

+0

你想消除你的字符串吗? –

回答

3

像这样的东西应该工作:

//for old browsers... 
Array.prototype.indexOf = Array.prototype.indexOf || function(o) { 
    for(var k = 0; k < this.length; ++k) 
     if(this[k] === o) return k; 
    return -1; 
}; 

var escapes = ['p', '(', ')', '?']; 
var array = 'hey?'.split(''); 

for(var i = 0; i < array.length; ++i) { 
    var escapeIndex = escapes.indexOf(array[i]); 
    if(escapeIndex > -1) { 
     array[i] = '\\' + array[i]; 
    } 
} 

var newString = array.join(''); 
2

不知道这是做的最有效的方式,但你可以尝试这样的事情 -

var text = "= 'hey?'"; 
var a = ['p','(',')','?']; 
for (i=0;i<a.length;i++) { 
text = text.replace(a[i],'\\' + a[i]) 
} 
alert(text); 

演示 - http://jsfiddle.net/aEysk/

+0

这是所有浏览器兼容? – sbaaaang

+0

@Ispuk - 我会这么想的,但我只是猜测。它适用于IE6。 – ipr101

0

试试这个

for(var i=0;i<arr.length;i++){ 
var ind = strValue.IndexOf(arr[i]) 
    if(ind>-1) 
    { 
     strValue.splice(ind,1) 
    } 
}