如何在javascript中拆分语言字符串(Wordpress qTranslate)

Ben*_*Ben 1 javascript wordpress jquery qtranslate

我有这个javascript字符串:

"<!--:fr-->Photos<!--:--><!--:en-->Pictures<!--:-->"
Run Code Online (Sandbox Code Playgroud)

我需要解析它以获得不同字符串中的每个"语言".理想的是拥有如下功能:

function getText(text, lang){
    // get and return the string of the language "lang" inside the multilang string "text"
}
Run Code Online (Sandbox Code Playgroud)

我可以这样打电话:

var frenchText = getText("<!--:fr-->Photos<!--:--><!--:en-->Pictures<!--:-->","fr");
// and would return:
// frenchText = Photos
Run Code Online (Sandbox Code Playgroud)

如果有人知道这样做的好方法,可能有一个很棒的正则表达!

bry*_*mck 7

我认为没有必要做太多解释; 您只需添加lang到正则表达式的模板并获得第一个backref((.*?)部分).我不相信你提供的字符串的任何部分构成保留字符.请注意,如果找不到匹配项,您可以包含一些错误处理,但我会将其留给OP:

function getText(text, lang) {
  // Builds regex based on supplied language
  var re = new RegExp("<!--:" + lang + "-->(.*?)<!--:-->");

  // Returns first backreference
  return text.match(re)[1];
}
getText("<!--:fr-->Photos<!--:--><!--:en-->Pictures<!--:-->", "fr");
// returns "Photos"
Run Code Online (Sandbox Code Playgroud)