自动递增字母数字php、javascript

自动递增字母数字php、javascript,php,jquery,auto-increment,alphanumeric,Php,Jquery,Auto Increment,Alphanumeric,我想做一个自动递增的字母数字,这只是为了输出 如果我按下一个按钮,有一个输出AA001,然后我再次按下一个按钮,有一个输出AA002 下面的代码将生成一个令牌,您可以将其前进一步。它使用一些小类使其模块化。附加到按钮的函数将调用令牌上的下一个函数,如底部所示 //大令牌中的元素 函数增量(起始值、结束值){ this.start=startval.charCodeAt(0); this.cur=this.start; this.end=endval.charCodeAt(0); //返回当前值

我想做一个自动递增的字母数字,这只是为了输出

如果我按下一个按钮,有一个输出AA001,然后我再次按下一个按钮,有一个输出AA002


下面的代码将生成一个令牌,您可以将其前进一步。它使用一些小类使其模块化。附加到按钮的函数将调用令牌上的下一个函数,如底部所示

//大令牌中的元素
函数增量(起始值、结束值){
this.start=startval.charCodeAt(0);
this.cur=this.start;
this.end=endval.charCodeAt(0);
//返回当前值
this.get=函数(){
如果(this.cur=0;i--){
if(this.token[i].next()==null){
//如果我们用尽了所有可能的值,请继续
this.token[i].reset();
}否则{
//直到我们推进一个仍有价值的项目
打破
}
}
返回这个。get();
}
}
//现在我们只是在炫耀。。。
var a=新令牌();
对于(变量i=0;i<15;i++){
log(a.next());
}
const getNextAlphaString=function(str){
“严格使用”;
str=str.toUpperCase();
让查尔;
chars=str.split(“”);
常量strLen=str.length;
让continueincessment=true;
for(设i=strLen-1;i>=0;i=i-1){
让阿西瓦尔;
ascival=chars[i].charCodeAt(0);
如果(isNaN(Ascival)){
返回str;
}
if(continueIncermenting===true){
如果(ascival>=48&&ascival<57){
chars[i]=String.fromCharCode(ascival+1);
继续确认=错误;
打破
}否则如果(asciiVal==57){
字符[i]=“0”;
ContinueIncerting=真;
}
如果(ascival>=65&&ascival<90){
chars[i]=String.fromCharCode(ascival+1);
继续确认=错误;
打破
}否则如果(asciiVal==90){
chars[i]=String.fromCharCode(65);
ContinueIncerting=真;
}
}否则{
如果(ASCIVAL==90){
ContinueIncerting=真;
chars[i]=String.fromCharCode(65);
}
如果(ascival==57){
ContinueIncerting=真;
字符[i]=“0”;
}
}
}
if(continueIncermenting===true){
设firstAcii=chars[0]。charCodeAt(0);
if(isNaN(firstAcii)){
返回str;
}
如果((firstAcii>=65&&firstAcii=97&&firstAcii=48&&firstAcii AB1ZDF)

abcdzz--->ABCEAA
zzzzz--->AAAAAA
abcyzz--->ABCZAA

9000--->9001

这不使用任何“聪明”的技巧,但它较短,更易于理解和调整。它还使用数字,因此不会快速增长字符串的长度。它从0-9开始递增,然后是a-z,但您应该输入“a”作为开始。输出总是以字母字符开始,只要您的输入也以字母字符开头,因此可以用作PHP变量名

var nextVarName = function(str) {
  // Position of char to change.
  var change = str.length - 1;
  // The value of that char.
  var change_char = str[change];
  // Number of zeros to append when flipping.
  var zeros = 0;
  // Iterate backwards while there's a z (flipping).
  while (change_char == 'z') {
    // Increase the length of appended zeros
    zeros++;
    // Move the char to change back.
    change_char = str[--change];
  }
  if (change_char == undefined) {
    // Full flip - string increases in length.
    str = 'a' + Array(str.length + 1).join("0");
  } else {
    // Normal increment with partial flip and 9->a handling.
    str = str.substr(0, change) 
      + (change_char == '9' ? 'a' : String.fromCharCode(str.charCodeAt(change) + 1)) 
      + Array(zeros + 1).join('0');
  }
  return str;
};

var vname = 'a';
for (var i = 0; i < 5; i++) {
  vname = nextVarName(vname);
  console.log(vname);
}
var nextVarName=函数(str){
//要更改的字符位置。
变量变化=str.length-1;
//该字符的值。
var change_char=str[change];
//翻转时要追加的零数。
var零点=0;
//当有z(翻转)时向后迭代。
while(change_char=='z'){
//增加附加零的长度
零++;
//将字符移回原处。
change_char=str[--change];
}
if(change_char==未定义){
//完全翻转-字符串长度增加。
str='a'+数组(str.length+1).join(“0”);
}否则{
//部分翻转和9->a处理的正常增量。
str=str.substr(0,更改)
+(change_char=='9'?'a':String.fromCharCode(str.charCodeAt(change)+1))
+数组(零+1)。连接('0');
}
返回str;
};
var vname='a';
对于(变量i=0;i<5;i++){
vname=nextVarName(vname);
console.log(vname);
}
结果如下:

z--->a0

9z--->a0(意外输入)

ab1zde--->ab1zdf

abcdzz--->abce00

zzzzz--->a00000

abcyzz--->abcz00

9000--->9001(意外输入)

每个长度的变量(以字母字符开头)创建数量的计划如下:


1:26,2:936,3:33696,4:1213056…n:
36^n-10*36^(n-1)

您是如何在按下按钮时获得第一个值的?您忘了问我们一个问题,或向我们展示您当前最努力的代码。此外,您没有解释当前代码的失败之处或失败原因。您是希望我们帮您解决问题,还是只是以某种方式鼓励您?
var nextVarName = function(str) {
  // Position of char to change.
  var change = str.length - 1;
  // The value of that char.
  var change_char = str[change];
  // Number of zeros to append when flipping.
  var zeros = 0;
  // Iterate backwards while there's a z (flipping).
  while (change_char == 'z') {
    // Increase the length of appended zeros
    zeros++;
    // Move the char to change back.
    change_char = str[--change];
  }
  if (change_char == undefined) {
    // Full flip - string increases in length.
    str = 'a' + Array(str.length + 1).join("0");
  } else {
    // Normal increment with partial flip and 9->a handling.
    str = str.substr(0, change) 
      + (change_char == '9' ? 'a' : String.fromCharCode(str.charCodeAt(change) + 1)) 
      + Array(zeros + 1).join('0');
  }
  return str;
};

var vname = 'a';
for (var i = 0; i < 5; i++) {
  vname = nextVarName(vname);
  console.log(vname);
}