js使用正则匹配,并将匹配到的结果依次替换为数组中给定的值
请问 我想用js正则 得到 “asdfasdf{sd}sdfasdfasdf{sdfsdf}”的{}中的内容怎么写,不包括{}符号。
函数set(str,ary),ary是个数组,依次替换str中的{}的内容,又怎么写。
求解!!!!
Yuzeki
11 years, 10 months ago
Answers
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, 10 months ago