我想删除字符串周围的“”。

例如,如果字符串是:“I am here”,那么我只想输出I am here。


当前回答

使用replaceAll

const someStr = 'He said "Hello, my name is Foo"';

console.log(someStr.replaceAll('"', '')); 

// => 'He said Hello, my name is Foo'

其他回答

如果你可以控制你的数据,你知道你的双引号包围字符串(所以不出现在字符串中),字符串是一个整数…用:

"20151212211647278"

或者类似的,这很好地删除了周围的引号

JSON.parse("20151212211647278");

这不是一个通用的答案,但巧妙地满足了利基需求

var expressionWithoutQuotes = '';
for(var i =0; i<length;i++){
    if(expressionDiv.charAt(i) != '"'){
        expressionWithoutQuotes += expressionDiv.charAt(i);
    }
}

这可能对你有用。

str = str.replace(/^"(.*)"$/, '$1');

只有当引号是字符串的第一个和最后一个字符时,这个regexp才会删除引号。F.ex:

"I am here"  => I am here (replaced)
I "am" here  => I "am" here (untouched)
I am here"   => I am here" (untouched)

如果只想从开头或结尾删除引号,请使用以下正则表达式:

'"Hello"'.replace(/(^"|"$)/g, '');

如果字符串保证在开头和结尾有一个引号(或任何其他单个字符),你想删除:

str = str.slice(1, -1);

Slice的开销比正则表达式小得多。