javascript正则表达式删除匹配中的单引号

javascript正则表达式删除匹配中的单引号,javascript,regex,Javascript,Regex,正确返回匹配项,即“test”和“test2”,但如何删除匹配项中的单个引号。以下是解决问题的粗略方法 var RegTxt = "$f1$='test' AND f2='test2'"; alert(RegTxt.match(/\'[^\']*'/g)) newMatches现在将包含您需要的数组。简单方法: var matches = str.match(regex); var newMatches = []; for( i in matches ) { var word = match

正确返回匹配项,即“test”和“test2”,但如何删除匹配项中的单个引号。

以下是解决问题的粗略方法

var RegTxt =  "$f1$='test' AND f2='test2'";
alert(RegTxt.match(/\'[^\']*'/g))
newMatches
现在将包含您需要的数组。

简单方法:

var matches = str.match(regex);
var newMatches = [];
for( i in matches )
{
var word = matches[i];
newMatches.push( word.substring(1,word.length-1))
}
使用您的正则表达式:

RegTxt.replace(/'/g, "")

如果JavaScript支持反向lookbehinds,这将非常简单:

RegTxt.replace(/\'([^\']*)'/g, "$1")

>>按照惯例,RegTxt应该以小写字母“r”开头。什么惯例?这是非常主观的,在这个问题上有很多意见!在JavaScript中,大写的第一个字符表示构造函数。就像我说的,这是一个惯例。看(…想知道为什么我被否决了)如果知道为什么被否决了,那就好了,因为这在功能上是有效的,我确实提到了这是一个粗糙的解决方案。
RegTxt.replace(/\'([^\']*)'/g, "$1")
/(?<=').*?(?=')/
// btw, RegTxt should start with a lowercase 'r', as per convention
var match = [];
regTxt.replace(/'([^']*)'/g, function($0, $1){
    match.push($1);
});
match; // => ['test', 'test2']