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 );