日期:2014-05-16  浏览次数:20492 次

如何将输入的值进行转为特定字符串?
字符串的格式为:RB/PC/PB/记-201401-001(凭证字-6位年月-3位序号)

“.”代表指定字串结束

凭证字的代码
“0”代表:RP
“1”代表:PC
“2”代表:PB
“3”代表:记

6位年月
“0”为系统时间的本年
“1”为系统时间的上一年(即现在为2014那么就为2013)
月份自动补“0”为两位

3位序号
自动补“0”为三位

效果如:
当前系统时间为2014年

当输入:0.01.1      Enter(回车)文本内容则转为RB-201401-001
当输入:1.110.12    Enter(回车)文本内容则转为PC-201310-012
当输入:3.03.198    Enter(回车)文本内容则转为记-201403-198
当输入:2.112.13    Enter(回车)文本内容则转为PB-201312-013

献上最后的29分,期待大神支招,本人十分感激!

------解决方案--------------------
function convertTo(str){
    var arr     =   str.split('.'),//将原字符串以.分割字符串为数组
        zeroize =   ['000','00','0',''];//补零数组
    return  arr.length == 3 
                ? [
                        //转换凭证字代码[容错:当其超出数组长度时返回原字符串]
                        ['RB','PC','PB','记'][arr[0]] 
------解决方案--------------------
 arr[0],
                        
                        //转换年份::以截取的第一个字符作为数组的索引,返回其匹配值[容错:超出定义的数组长度时返回当前年份]
                        ([new Date().getFullYear(),new Date().getFullYear() - 1][arr[1].substr(0,1)] 
------解决方案--------------------
 new Date().getFullYear())
                        +
                        //转化月份,长度不足两位时补0
                        zeroize[arr[1].length] + arr[1].substr(1),