我想删除字符串周围的“”。
例如,如果字符串是:“I am here”,那么我只想输出I am here。
我想删除字符串周围的“”。
例如,如果字符串是:“I am here”,那么我只想输出I am here。
当前回答
以一种更容易用正则表达式表达的方式重申你的问题:
获取包含在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, '');
这是为懒人设计的一款简单的工具
var str = '"a string"';
str = str.replace(/^"|"$/g, '');
这工作…
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));
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)
这个简单的代码也可以工作,例如从双引号包围的字符串中删除双引号:
var str = 'remove "foo" delimiting double quotes';
console.log(str.replace(/"(.+)"/g, '$1'));