Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery获取括号之间的文本_Javascript_Jquery - Fatal编程技术网

Javascript 使用jQuery获取括号之间的文本

Javascript 使用jQuery获取括号之间的文本,javascript,jquery,Javascript,Jquery,我试图在多个花括号之间获得值,这些花括号从{{ 例如: 预期结果:结果数组,如结果[0]=“{{$500}”,结果[1]=“{{$600}” 我尝试了下面的东西,但并没有返回预期的结果 var regExp = /\{([^)]+)\}/g; var result = txt.match(regExp); 使用match和map,正则表达式为/(?:({))[^}]+(?=})/g 演示 var txt=“我预计500美元{{ac:$500}和新括号{{ac:$600}”; var matc

我试图在多个花括号之间获得值,这些花括号从{{

例如:

预期结果:
结果数组,如结果[0]=“{{$500}”,结果[1]=“{{$600}”

我尝试了下面的东西,但并没有返回预期的结果

var regExp = /\{([^)]+)\}/g;
var result = txt.match(regExp);

使用
match
map
,正则表达式为
/(?:({))[^}]+(?=})/g

演示

var txt=“我预计500美元{{ac:$500}和新括号{{ac:$600}”;
var matches=txt.match(/(?:({))[^}]+(?=}})/g);
如果(匹配){
matches=matches.map(s=>s.substring(2));
}

console.log(匹配项)您可以使用简单的正则表达式,然后使用函数获取每个匹配项,并从捕获的组中提取值

var txt=“我预计500美元{{rc:$500}和新括号{{ac:$600}”;
var reg=/{{\w+:(\$\d+}}}/g,
M
res=[],
res2=[];
while(m=reg.exec(txt)){
res.push(m[0]);
res2.push(m[1]);
}

log(res,res2)
像这样更改代码

var txt=“我预计500美元{{$500}和新括号{{$600}”;
函数getText(str){
var res=[],p=/{{([^}]+)}/g,行;
while(row=p.exec(str)){
res.push(第[1]行);
}
返回res;
}
log(getText(txt))
String#match
将始终返回完全匹配的正则表达式,而不使用捕获组。您可以使用回调函数使用
String#replace
,将每个匹配项添加到数组中

var txt=“我预计500美元{{ac:$500}和新括号{{ac:$600}”;
var regExp=/{{ac:([^\}]+)}/g;
函数匹配(regExp,txt){
常量结果=[]
txt.replace(regExp,(\ux)=>result.push(x));
返回结果
}
log(匹配(regExp,txt))

它需要正则表达式吗?@Zorkind不,它可以是任何东西,即使是普通的JSit也可以在@Richa:
/{rc(\$\d+)}/g
@Richa:
/{rc:(\$\d+)}的第一个“{”和最后一个“}”可能的副本中获取所有内容/g
@Richa共享预期result@Richa:您可以根据自己的要求更新正则表达式,您可以使用自己的正则表达式,该正则表达式可以匹配除括号以外的任何内容的组合,而大括号在更新后的fiddle中不起作用。我错过什么了吗
var regExp = /\{([^)]+)\}/g;
var result = txt.match(regExp);
var txt ="I expect five hundred dollars {{ac:$500}}. and new brackets {{ac:$600}}";
var matches = txt.match( /(?:({{))[^}]+(?=}})/g );
if ( matches )
{
   matches = matches.map( s => s.substring(2) );
}
console.log( matches  );