如果存在,如何从字符串变量中删除包含[“”]?

时间:2014-06-10 17:16:00

标签: javascript

我有字符串变量,如下所示:

var a = '["Email cannot be null or empty."]';
var b = 'test string';

有没有办法可以检查变量是否在'[“',']”'中开始和结束,如果是,那么这些变量将被删除,以便变量变为:

var a = 'Email cannot be null or empty.';
var b = 'test string';

如果有可能,我正在寻找的是一线解决方案。我不确定我是否可以使用一些正则表达式或索引函数。任何建议都将不胜感激。

6 个答案:

答案 0 :(得分:1)

如果您知道这种情况很可能,几乎没有偏差:

function unformatString(str) {
   try {
      str = JSON.parse(str);
      if (Object.prototype.toString.call(str) === '[object Array]') {
         return str[0];
      }
   } catch (err) { }

   return str;
}

var a = unformatString('["Email cannot be null or empty."]');
var b = unformatString('test string');

答案 1 :(得分:0)

在您的情况下,上述解决方案可能更好,但文本替换的替代解决方案是String.replace() method

您可以使用以下方法修复字符串:

a = a.replace("[\"", "");
a = a.replace("\"]", "");

这将从字符串中的任何位置删除字符串[""],无论它是在字符串的前面,后面还是中间。 String.replace()还支持正则表达式,而不仅仅是字符串,因此如果需要,您可以在其位置编写快速正则表达式。

答案 2 :(得分:0)

if(a.indexOf('["')==0 && a.indexOf('"]')==a.length-2)
{
  a = a.replace('[\"', '');
  a = a.replace('\"]', '');
} 

首先我正在检查变量是否在' ["' ,']"'

答案 3 :(得分:0)

此代码会在开头删除[",在DEMO

字符串末尾删除"]
var a = '["Email cannot be null or empty."]';
a = a.replace(/^\[\"/,'').replace(/\"\]$/,'');
alert(a);

答案 4 :(得分:0)

试试这个:

var a = '["Email cannot be null or empty."]';
a.replace(/[\[\"\]]/g, "")
//output "Email cannot be null or empty."

答案 5 :(得分:0)

您可以使用exec()方法使用正则表达式执行此操作。

var cleanInput = function(str) {
    var patt = /\["(.*)"]/g;
    if( (result = patt.exec(str)) !== null )
        return result[1];
    else
        return str;
},
    input1 = '["Dummy string"]',
    input2 = '["Another dummy string"]',


    // Checking Inputs

    input1 = cleanInput(input1),
    input2 = cleanInput(input2);

<强> http://jsfiddle.net/Uu8Ht/