如何获得子串javascript?

时间:2016-05-27 05:25:40

标签: javascript

我有一个像var str = 'Foo faa {{Question14}} {{Question23}}'这样的字符串。现在,我希望通过对{{Question14}}执行某些操作来获取子字符串{{Question23}}str。数字部分在str的子串中是可变的。我需要用它们各自的id替换这些子串。我怎么能这样做?

3 个答案:

答案 0 :(得分:1)

这是RegEx派上用场的时候。

var str = 'Foo faa {{Question14}} {{Question23}}'
var pattern = /(\{\{[a-zA-Z0-9]+\}\})/gi;
var matches = str.match(pattern);

console.log(matches[0]); //{{Question14}}
console.log(matches[1]); //{{Question23}}

答案 1 :(得分:1)

你可以这样做:

var
  str = 'Foo faa {{Question14}} {{Question23}}',
  arr = str.match(/{{Question[0-9]+}}/igm);

alert(arr[0]); // {{Question14}}
alert(arr[1]); // {{Question23}}

将匹配替换为某些ID:

str.replace(/{{Question([0-9]+)}}/igm, "id=$1"); // "Foo faa id=14 id=23"
  

当正则表达式包含组(用括号表示)时,   每组的比赛可获得第一组1美元,2美元   第二,等等。

答案 2 :(得分:0)

试试这个

var str = 'Foo faa {{Question14}} {{Question23}}';
var replacements = {
   "{{Question14}}" : "Hello",
   "{{Question23}}" : "Hi",
};
   var output = str.replace(/{{\w+}}/g, function(match){ return replacements [match] });
   console.log(output);