JavaScript写的序列代码生成器

今天一位网友向我求助,他要在Excel中填写

 

PDAA20124527000001
PDAA20124527000002
PDAA20124527000003

这样的序列,但在Excel中无法智能填充。

 

这个可以编写VBA代码来完成,不过我对VBA不太熟,还是用JavaScript写了一个。

 

<FORM>
<p><font color="blue" size="+2">序列生成器 v0.0.0001</font></p>
<p>固定部分:<INPUT TYPE="text" ID="txtFixed" value="PDAA20124527" /></p>
<p>起始值:<INPUT TYPE="text" ID="txtBegin" value="1"> 结束值:<INPUT TYPE="text" ID="txtEnd" value="999999"> 步长:<INPUT TYPE="text" ID="txtStep" value="1"> <INPUT TYPE="button" VALUE="生成序列" ONCLICK="genCode();"></p>
</FORM>
<script language="javascript">
function genCode()
{
	sFixed = (document.getElementById("txtFixed")).value;
	if (0==sFixed.length)
	{
		if (!confirm("未指示固定部分!\n要继续生成吗?"))
		{
			return;
		}
	}

	iStart = (document.getElementById("txtBegin")).value;
	if (0==iStart.length)
	{
		alert("未指示起始值!");
		return;
	}
	iStart = iStart/1;

	iEnd = (document.getElementById("txtEnd")).value;
	if (0==iEnd.length)
	{
		alert("未指示结束值!");
		return;
	}
	iEnd = iEnd/1;

	iStep = (document.getElementById("txtStep")).value;
	if (0==iStep.length)
	{
		if (!confirm("未指示结束值!\n要默认为1,继续生成吗?"))
		{
			return;
		}
	}
	iStep = iStep/1;
	
	genSerialCode();
}


function genSerialCode()
{
	document.write('<form name="frmTest">');
	document.write('<TEXTAREA ROWS="30" COLS="90" name="taTest">');

	for (i=iStart; i < iEnd+1; i+=iStep)
	{
		document.write(sFixed);
		var j = i;	
		while( (j = j*10) < iEnd )
		{
		//document.writeln("j="+j);
			document.write("0");
		}
		document.writeln(i);
	}

	document.write('<\/TEXTAREA><\/form>');
	var tempval=eval("document.frmTest.taTest");
	tempval.focus();
	tempval.select();
	therange=tempval.createTextRange();
	therange.execCommand("Copy");
}
</script>

 

改进了一下:

<FORM>
<p><font color="blue" size="+2">序列生成器 v0.0.0001</font></p>
<p>固定部分:<INPUT TYPE="text" ID="txtFixed" value="PDAA20124527" /></p>
<p>起始值:<INPUT TYPE="text" ID="txtBegin" value="1"> 结束值:<INPUT TYPE="text" ID="txtEnd" value="999999"> 步长:<INPUT TYPE="text" ID="txtStep" value="1"> <INPUT TYPE="button" VALUE="生成序列" ONCLICK="genCode();"></p>
</FORM>
<script language="javascript">
function genCode()
{
	sFixed = (document.getElementById("txtFixed")).value;
	if (0==sFixed.length)
	{
		if (!confirm("未指示固定部分!\n要继续生成吗?"))
		{
			return;
		}
	}

	iStart = (document.getElementById("txtBegin")).value;
	if (0==iStart.length)
	{
		alert("未指示起始值!");
		return;
	}
	iStart = iStart/1;

	iEnd = (document.getElementById("txtEnd")).value;
	if (0==iEnd.length)
	{
		alert("未指示结束值!");
		return;
	}
	iEnd = iEnd/1;

	iStep = (document.getElementById("txtStep")).value;
	if (0==iStep.length)
	{
		if (!confirm("未指示结束值!\n要默认为1,继续生成吗?"))
		{
			return;
		}
	}
	iStep = iStep/1;
	
	genSerialCode();
}


function genSerialCode()
{
	document.write('<form name="frmTest">');
	document.write('<TEXTAREA ROWS="30" COLS="90" name="taTest">');
	var j, iMaxLen = String(iEnd).length;
	for (i=iStart; i < iEnd+1; i+=iStep)
	{
		document.write(sFixed);
		var iLen = iMaxLen - String(i).length;

		for (j = 0; j < iLen; j++)
		{
		//document.writeln("j="+j);
			document.write("0");
		}

		document.writeln(i);
	}

	document.write('<\/TEXTAREA><\/form>');
	var tempval=eval("document.frmTest.taTest");
	tempval.focus();
	tempval.select();
	therange=tempval.createTextRange();
	therange.execCommand("Copy");
}
</script>



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

紫郢剑侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值