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

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


当前回答

这是为懒人设计的一款简单的工具

var str = '"a string"';
str = str.replace(/^"|"$/g, '');

其他回答

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

"20151212211647278"

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

JSON.parse("20151212211647278");

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

使用replaceAll

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

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

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

这段代码是非常好的显示数字在文本框

$(this) =[你的文本框]

            var number = $(this).val();
            number = number.replace(/[',]+/g, '');
            number = number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
            $(this).val(number); // "1,234,567,890"

如果要删除字符串中的所有双引号,请使用

var str = '"some "quoted" string"';
console.log( str.replace(/"/g, '') );
// some quoted string

否则,你想要删除字符串周围的引号,使用:

var str = '"some "quoted" string"';
console.log( clean = str.replace(/^"|"$/g, '') );
// some "quoted" string

以一种更容易用正则表达式表达的方式重申你的问题:

获取包含在0或1个开头双引号和0或1个结尾双引号之间的字符的子字符串。

下面是执行此操作的regexp:

  var regexp = /^"?(.+?)"?$/;
  var newStr = str.replace(/^"?(.+?)"?$/,'$1');

分解regexp:

^”?零或一个前导双引号的贪婪匹配 ”?$是零或一个尾随双引号的贪婪匹配 这两个字符将对所有其他字符(.+?)进行非贪婪捕获,其中将包含$1的目标。

这将返回带分隔符的“字符串”,用于:

str = "delimited "string" here"  // ...
str = '"delimited "string" here"' // ...
str = 'delimited "string" here"' // ... and
str = '"delimited "string" here'