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

标签 javascript jquery wordpress qtranslate

我有这个 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

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

最佳答案

我认为不需要太多解释;您只需将 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"

关于javascript - 如何在 javascript 中拆分语言字符串(Wordpress qTranslate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6520452/

相关文章:

jquery - RaphaelJS 在点击时删除元素

php - WordPress 查询中排除/不等于多个值

php - 使用 get_user() 对姓氏进行排序时遇到问题

javascript - 如何将原始 innerHTML 传递给 php?

javascript - 让 xstate 机器接收事件并更新上下文(但不更改状态),无论它处于哪种状态

javascript - 清除我对这个 js 模式的想法

javascript - 具有可变内容的 jQuery 选择器

javascript - jQuery 对话框上的 onclick 事件不适用于 IOS

javascript - 使用jspdf对齐表格中列的文本

javascript - 服务器文件的 URL 在 wordpress 站点的页面源中更改