当前位置: 首页 > 知识库问答 >
问题:

Javascript -如何获得两个字符之间的字符串列表[duplicate]

逄嘉熙
2023-03-14

如何实现返回两个字符之间的字符列表的函数?

const string = "My name is <<firstname>> and I am <<age>>";

const getVariables = (string) => { 
  // How do I implement?
}

console.log(getVariables(string));  // ['firstname', 'age']

PS:我知道如何做类似的事情有多种答案,但所有这些答案都只适用于获得第一个实例,而不是所有事件。

共有3个答案

梁丘飞鸾
2023-03-14

您可以使用regex、group、matchAll并获得第一个组

const string = "My name is <<firstname>>, from <<place>>, and I am <<age>>"

const getVariables = string => {
  return [...string.matchAll(/<<(\w+)>>/g)].map(match => match[1])
}

console.log(getVariables(string))
拓拔嘉运
2023-03-14

您可以使用lookbehind和lookahead搜索具有起始模式和结束模式的字符串

const
    string = "My name is <<firstname>> and I am <<age>>",
    parts = string.match(/(?<=\<\<).*?(?=\>\>)/g);

console.log(parts);
闽高峯
2023-03-14

假设这是某种模板,您可以像这样操作:

let format = (str, vars) => 
  str.replace(/<<(\w+)>>/g, (_, w) => vars[w]);
  
//

const tpl = "My name is <<firstname>> and I am <<age>>";

console.log(
  format(tpl, {firstname: 'Bob', age: 33})
)
 类似资料:
  • 问题内容: 我需要从两个字符之间获取字符串。我有这个 并且必须在一个变量中分别返回4个字符串: 问题答案: 有。由于它接受正则表达式字符串,并且是正则表达式中的特殊字符,因此您需要对其进行转义(带有反斜杠)。而且,由于是在Java中字符串字面特殊字符,你需要逃脱 它 ,也一样,人们有时会感到迷惑。因此给出: 然后 将输出 ( 在 前三位上 有 尾随空格;如果需要,这些空格。)

  • 问题内容: 我试图从一个较大的字符串中提取一个字符串,使它在’:’和’;’之间得到一切。 当前 期望的输出 问题答案: 你可以试试这个

  • 问题内容: 我从html解析中得到一个字符串,即 我的代码是这样的 我不确定我的第二个拆分字符串应该是“’”还是“’,” 我希望我的结果是 问题答案: 我将使用正则表达式从这样的复杂输入中提取子字符串。 Swift 3.1: Swift 2.0:

  • 问题内容: 我发现了非常相似的帖子,但是我在这里不能完全得到正则表达式。 我正在尝试编写一个正则表达式,该表达式返回一个位于其他两个字符串之间的字符串。例如:我想获取字符串“ cow”和“ milk”之间的字符串。 我的牛总是喂牛奶 会回来 “总是给” 到目前为止,这是我拼凑的表达方式: 但是,这将返回字符串“牛总是给”。 问题答案: 前瞻(该部分)不消耗任何输入。这是一个 零宽度的断言 (边界检

  • 问题内容: 想要改善这篇文章吗? 提供此问题的详细答案,包括引文和为什么答案正确的解释。答案不够详细的答案可能会被编辑或删除。 我需要一个函数来返回两个单词(或两个字符)之间的子字符串。我想知道是否有实现该功能的php函数。我不想考虑正则表达式(嗯,我可以做一个,但实际上并不认为这是最好的方法)。思维与功能。这是一个例子: 我们调用该函数: 它返回:“我想要一个蛋糕”。 提前致谢。 更新: 嗯,到

  • 问题内容: 假设我们有类似的东西: 我想将“ someText”替换为其他内容。考虑到我不知道someText可能是什么(任何字符串)并且我所知道的是它将被&firstString =和&endString =包围的事实,最佳方法是什么? 编辑:对不起,看起来这还不够清楚。我不知道“ someText”可能是什么,我仅有的信息是它将位于&firstString =和&endString =之间 我