在某些字符之前和之后添加字符串中的空格

时间:2013-10-11 08:44:17

标签: javascript jquery string space

我想在字符串之前和之后添加空格。

var x = "asdasdasdasd+adasdasdasd/asdasdasdasd*asdasdasd-asdasdasd:asdasdasdadasdasd?";

我想在

之前和之后添加空格
var separators = ['+', '-', '(', ')', '*', '/', ':', '?'];

所以输出就像

asdasdasdasd + adasdasdasd / asdasdasdasd * asdasdasd - as ( dasd ) asd : asdasdasdadasdasd ?

4 个答案:

答案 0 :(得分:2)

你可以使用类似的东西:

var str = x.replace(new RegExp('\\' + separators.join('|\\'), 'g'), ' $& ')

答案 1 :(得分:2)

你可以使用正则表达式。

for (var i = 0; i < separators.length; i++) { 
      var rg = new RegExp("\\" + separators[i], "g"); 
      x = x.replace(rg, " " + separators[i] + " "); 
}

答案 2 :(得分:1)

你可以尝试这个| Demo

function fix(val)
{
  var separators = ['+', '-', '(', ')', '*', '/', ':', '?'];
  var result="";
  flag=true;
  for(var i=0;i<val.length;i++)
  {
     flag=true;
     for(var j=0;j<separators.length;j++)
     {
        if(val[i]==separators[j])
        {
            result += " " + val[i] + " ";
            flag=false;         
        }
     }
     if(flag)
     {
            result +=val[i];
     }
}

alert(result);
}

答案 3 :(得分:0)

这看起来相当容易......

var separators = ['+', '-', '(', ')', '*', '/', ':', '?'];
var x = "asdasdasdasd+adasdasdasd/asdasdasdasd*asdasdasd-asdasdasd:asdasdasdadasdasd?";
$(separators).each(function (index, element) {
    x = x.replace(element, " " + element + " ");
});

这是一个小提琴:http://jsfiddle.net/gPza4/

对于想要理解这段代码的人来说,我基本上做的是将分隔符数组设置为jQuery对象,然后迭代它,同时将字符串x中那些分隔符的出现替换为&#34;间距& #34;形式。