获取类似excel的列名的Javascript算法
Javascript Algorithm to get the excel-like column name
基本上我想做的是创建一个字符列表,格式类似excel列名。
的例子:a, b, c, d,…,z, aa、ab, ac,…,yz
在PHP中你可以循环使用下面的代码:
for($char = "A"; $char <= "Z"; $char++)
{
echo $char . "'n";
}
但是当我在javascript中尝试时:
var i3;
var text3 = "";
for(i3 = "A"; i3 <= "Z"; i3++)
{
text3 += i3 + ", ";
}
document.getElementById("pId").innerHTML = text3;
这对我不起作用。我的代码有错误吗?或者PHP逻辑在JS中不起作用?如果你知道如何制作,请告诉我,谢谢。
在javascript中,当对字符串值调用递增运算符时,将返回NaN
。
您可以使用基于ascii码的实现,如
var i3, i4;
var text3 = "";
for (i3 = 0; i3 < 26; i3++) {
text3 += String.fromCharCode(97 + i3) + ", ";
}
for (i3 = 0; i3 < 26; i3++) {
for (i4 = 0; i4 < 26; i4++) {
text3 += String.fromCharCode(97 + i3) + String.fromCharCode(97 + i4) + ", ";
}
}
document.getElementById("pId").innerHTML = text3;
<span id="pId"></span>
短就是美!
var nextChar = c=>c?String.fromCharCode(c.charCodeAt(0)+1):'A';
var nextCol = s=>s.replace(/([^Z]?)(Z*)$/, (_,a,z)=>nextChar(a) + z.replace(/Z/g,'A'));
//test:
nextCol(''); //A
nextCol('A'); //B
nextCol('Z'); //AA
nextCol('AA'); //AB
nextCol('XYZ'); //XZA
nextCol('ZZZZ'); //AAAAA
//output: A,B,C,...,ZZ
for(var i=0, s=''; i<702; i++){
s = nextCol(s);
console.log(s);
}
//output: A,B,C,...,ZZZZ
for(var i=0, s=''; i<475254; i++){
s = nextCol(s);
console.log(s);
}
我编写了一个名为next的函数,它提供相邻的右单元格。
function next(currentCell) {
let regex = /[A-Z]/g;
let numberRegex = /[0-9]/g;
let chars = currentCell.match(regex);
let nums = currentCell.match(numberRegex);
let flag = true;
let x = 1;
while (flag) {
if (chars[chars.length - x] === 'Z') {
if ((chars.length - x) === 0) {
chars[chars.length - x] = 'A';
chars.unshift('A');
flag = false;
} else {
chars[chars.length - x] = 'A';
x++;
}
} else {
chars[chars.length - x] = String.fromCharCode(chars[chars.length - x].charCodeAt(0) + 1);
flag = false;
}
}
return chars.join("") + nums.join("");
}
next('A1') // returns 'B1'
next('ZZ90') // returns 'AAA90'
请尝试下面的代码来完成javascript
var i3;
var text3 = "";
var c;
for(i3 = 65; 90 >= i3; i3++)
{
c = String.fromCharCode(i3);
text3 += c + ", ";
}
document.getElementById("pId").innerHTML = text3;
相关文章:
- javascript扫雷器floodfill算法不能正常工作
- Vanilla Javascript算法,如何做和解释
- JavaScript算法,提供每种可能的项目组合,并将它们存储在数组中
- 用于查找基于时间的事件的最佳Javascript算法
- 反转JavaScript算法
- 用于创建数学减法方程的简单JavaScript算法
- JavaScript 算法性能 - 计算可被 k 整除的范围内的数字数
- 求和对的独特排列:Javascript算法
- 函数式 Javascript 算法不从过滤器返回预期结果
- 有效的javascript算法,用于从数组中选择项目,其中每个条目具有不同的权重
- 在javascript算法中使用私有MD5密钥的安全方式
- 从字符串javascript算法中删除字符
- 过滤联系人详细信息的Javascript算法
- 谁可以帮助解释这个JavaScript算法[].filter.call()
- 返回语句在递归javascript算法,如何返回所有的方式堆栈
- 简单的Javascript算法
- 获取类似excel的列名的Javascript算法
- 路径查找javascript算法无法正常工作'他应该这样做
- JavaScript算法转换为罗马数字
- Javascript算法添加数字到文本框