【问题标题】:Escape strings by array of chars通过字符数组转义字符串
【发布时间】:2011-09-27 12:02:09
【问题描述】:

我有一个 js 简单数组。

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

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

例如字符串是= 'hey?',在转义数组中我有'?'

【问题讨论】:

  • 你想从你的字符串中删除那些字符吗?

标签: javascript jquery escaping


【解决方案1】:

这样的事情应该可以工作:

//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/

    【讨论】:

    • 所有浏览器都兼容吗?
    • @Ispuk - 我会这么认为,但我只是猜测。它适用于 IE6。
    【解决方案3】:

    试试这个

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-13
      • 1970-01-01
      • 1970-01-01
      • 2019-05-02
      相关资源
      最近更新 更多