js使用正则匹配,并将匹配到的结果依次替换为数组中给定的值


请问 我想用js正则 得到 “asdfasdf{sd}sdfasdfasdf{sdfsdf}”的{}中的内容怎么写,不包括{}符号。

函数set(str,ary),ary是个数组,依次替换str中的{}的内容,又怎么写。

求解!!!!

正则表达式 JavaScript

Yuzeki 11 years, 4 months ago
   
  var str = '得到 “asdfasdf{sd}sdfasdfasdf{sdfsdf}”的{}中的内容怎么写,不包括{}符号';
  
console.log(str.match(/\{[^\}]+\}/));

更习惯这样写

   
  var str = 'asdfasdf{sd}sdfasdfasdf{sdfsdf}';
  
function set(str, arr) {
var patt = new RegExp("\{[^\}]+\}", "g");
while ((result = patt.exec(str)) != null) {
var tmp = result.toString().slice(1, -1);
if(typeof arr[tmp] !== 'undefined') {
str = str.replace(result.toString(), arr[tmp]);
}
}
return str;
}

str = set(str, {sd:'SD',sdfsdf:'SDFSDF'});
console.log(str);

Archerf answered 11 years, 4 months ago

Your Answer