我想删除字符串周围的“”。
例如,如果字符串是:“I am here”,那么我只想输出I am here。
我想删除字符串周围的“”。
例如,如果字符串是:“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);