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

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


当前回答

这个简单的代码也可以工作,例如从双引号包围的字符串中删除双引号:

var str = 'remove "foo" delimiting double quotes';
console.log(str.replace(/"(.+)"/g, '$1'));

其他回答

这工作…

var string1 = "'foo'"; var string2 = '"bar"'; function removeFirstAndLastQuotes(str){ var firstChar = str.charAt(0); var lastChar = str[str.length -1]; //double quotes if(firstChar && lastChar === String.fromCharCode(34)){ str = str.slice(1, -1); } //single quotes if(firstChar && lastChar === String.fromCharCode(39)){ str = str.slice(1, -1); } return str; } console.log(removeFirstAndLastQuotes(string1)); console.log(removeFirstAndLastQuotes(string2));

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

获取包含在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'

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

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

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

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

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

如果您试图删除双引号,请尝试以下操作

  var Stringstr = "\"I am here\"";
  var mystring = String(Stringstr);
  mystring = mystring.substring(1, mystring.length - 1);
  alert(mystring);