如何创建动态字母ID系统?

时间:2019-04-12 15:38:00

标签: javascript jquery wordpress

我想创建一个字母ID系统,该系统应超出26个字符的限制。

我已经创建了一个字母id系统,方法是首先生成一个数字,然后使用该id作为索引将其转换为字母。但是我想做的是在使用了26个字符后,我希望它继续使用AAABAC等。

var alphabet = ("abcdefghijklmnopqrstuvwxyz").split("");

var dataNo = object.find('.builder-list').attr("id").slice(2);
alphabet[dataNo]

现在的问题是,当数字达到25时,没有字母要翻译成。所希望的是字母再次开始重复,如:XYZAAABAC,等等

1 个答案:

答案 0 :(得分:2)

您可以采用一种方法将数字转换为字母。与十六进制的工作方式类似,当数字超出字母范围时,您将获得用于划分字母范围的字符,然后为剩余的字符添加下一个字母字符。

function convertNumberToId (number) {
  var alphabet = 'abcdefghijklmnopqrstuvwxyz'.toUpperCase().split('');
  
  if (number < alphabet.length) {
    return alphabet[number];
  } else {
    return (
      convertNumberToId(Math.floor(number / alphabet.length) - 1)
      +
      convertNumberToId(number % alphabet.length)
    );
  }
}

console.log(convertNumberToId(25));
console.log(convertNumberToId(26));
console.log(convertNumberToId(280));