【问题标题】:How to split a language string (Wordpress qTranslate) in javascript如何在 javascript 中拆分语言字符串(Wordpress qTranslate)
【发布时间】:2011-09-25 02:45:13
【问题描述】:

我有这个 javascript 字符串:

"<!--:fr-->Photos<!--:--><!--:en-->Pictures<!--:-->"

我需要对其进行解析,以将每种“语言”都放在不同的字符串中。理想的功能是:

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

我可以这样称呼:

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

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

【问题讨论】:

标签: javascript jquery wordpress qtranslate


【解决方案1】:

我认为不需要太多解释;您只需将lang 添加到您的正则表达式的模板并获得第一个反向引用((.*?) 部分)。我不相信您提供的字符串的任何部分构成reserved character。请注意,如果找不到匹配项,您可以包含一些错误处理,但我会将其留给 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"

【讨论】:

  • 如何签入如下字符串:“[:fr]Photos[:en]Pictures”?谢谢!
  • 是的@brymck 如何用“[:fr]french[:en]english[:]”检查它??提前谢谢!
【解决方案2】:

最好用PHP设置语言:

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

  // Returns first backreference
  return text.match(re)[1];
}
getText("<!--:fr-->Photos<!--:--><!--:en-->Pictures<!--:-->");

【讨论】:

    【解决方案3】:

    正如来自顶部的评论者所问的那样:对于像 [:fr]french[:en]english[:] 这样的字符串,您可以使用以下内容:

    function getText(mtext, lang) {
         // Builds regex based on supplied language
        var re = new RegExp("\\[:" + lang + "\\](.*?)\\[:","s");                          
        
        // Returns first backreference
        return mtext.match(re)[1];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-01
      相关资源
      最近更新 更多