Escape-строки по массиву символов - PullRequest
0 голосов
/ 27 сентября 2011

У меня есть простой массив js.

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

В соответствии со значениями этого массива мне нужно экранировать строки в js, как я могу это сделать?

например строка = 'hey?' и в массиве escape у меня есть '?'

Ответы [ 3 ]

3 голосов
/ 27 сентября 2011

Примерно так должно работать:

//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 голосов
/ 27 сентября 2011

Не уверен, что это самый эффективный способ сделать это, но вы можете попробовать что-то вроде этого -

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 голосов
/ 27 сентября 2011

Попробуйте это

for(var i=0;i<arr.length;i++){
var ind = strValue.IndexOf(arr[i])
    if(ind>-1)
    {
       strValue.splice(ind,1)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...