我有字符串变量,如下所示:
var a = '["Email cannot be null or empty."]';
var b = 'test string';
有没有办法可以检查变量是否在'[“',']”'中开始和结束,如果是,那么这些变量将被删除,以便变量变为:
var a = 'Email cannot be null or empty.';
var b = 'test string';
如果有可能,我正在寻找的是一线解决方案。我不确定我是否可以使用一些正则表达式或索引函数。任何建议都将不胜感激。
答案 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/ 强>