javascript - 确定字符串中的组

标签 javascript regex typescript dictionary reduce

我正在尝试确定字符串中的组。
例如“ AAABBCCCCD ”应该有 [“AAA”、“BB”、“CCCC”、“D”] 作为基于字符串模式的组。
这是我的简单功能:

const patternGroup = (str) => {
  let cursor = str[0]
  let groups = []
  let currentGroup = ""
  for (let i = 0; i < str.length; i++) {
    let ch = str[i]
    if (ch === cursor) {
      currentGroup += ch
    }
    else {
      groups.push(currentGroup)
      currentGroup = ch
      cursor = ch
    }
  }
  if (currentGroup !== "") {
    groups.push(currentGroup)
  }
  return groups
}
它按预期工作,但我正在寻找一个更简单的函数,可能使用 map/reduce 或正则表达式。有任何想法吗?

最佳答案

你可以简单地使用正则表达式:

var input = "AAABBCCCCD";
const res = input.match(/([^])(\1*)/g);

console.log(res)

关于javascript - 确定字符串中的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63108905/

相关文章:

javascript - YUI 库不适用于 SSL(安全服务器)

javascript - Node.js/AngularJS : Shrink image files to specific file size

javascript - 将事件添加到 HTML 输入数组的所有元素并获取数组中的值

javascript - 使用正则表达式删除数字

regex - GWT 的验证工具或模式

c - posix regcomp 和 regexec 线程安全吗?具体来说,在 GNU libc 上?

来自嵌套对象的 TypeScript 模板文字字符串

javascript - 这足以防止我的网站上出现 xss 吗?

typescript - 交集 '...' 被减少为 never

TypeScript 类型保护和 "only refers to a type, but is being used as a value here."