12333 -> 1233-3XXX-XXXX-XXXX
12    --> 12XX-XXXX-XXXX-XXXX
2222333344445555666 ->2222-3333-4444-5555
要求如上,
四位中间加横杆,不足的用X代替。 
出来的总共19(算上横杆)。请问有简单方法取得嘛?

解决方案 »

  1.   

    这么简单的,没人我要接贴了
    我要的最好是一个.net库函数就能搞定的。。
      

  2.   

    这个还不简单
    <script language=vbscript>
    Str="2222333344445555666" Tstr=""
    for i = 1 to 19
    M = M + 1
    If Mid(Str,i,1) <> "" THEN
    Tstr=Tstr + Mid(Str,i,1)
    N = N + 1
    Else
    Tstr = Tstr + "#"
    End If
    IF M mod 4 = 0 THEN
    Tstr=Tstr + "-"
    ENd iF
    NExt
    alert(Tstr)
    </script>
      

  3.   

    for i = 1 to 19
    我是根据你给出例子的规律来算的
      

  4.   

    Sorry,上面有误
    <script language=vbscript>
    Str="2222333344445555666" Tstr=""
    for i = 1 to 16
    M = M + 1
    If Mid(Str,i,1) <> "" THEN
    Tstr=Tstr + Mid(Str,i,1)
    N = N + 1
    Else
    Tstr = Tstr + "#"
    End If
    IF M mod 4 = 0 THEN
    Tstr=Tstr + "-"
    ENd iF
    NExt
    alert(Left(Tstr,Len(Tstr)-1))
    </script>
      

  5.   

    private string GetFormatString(string code)
    {
    if(code==null || code.Length==0)
    {
    return "";
    }

    while(code.Length<16)
    {
    code=code+"X";
    }
    if(code.Length>16)
    {
    code=code.Substring(0,16);
    }
    int i=1;
    int j=0;
    while(code.Length<19)
    {
    code=code.Insert(4*i+j,"-");
    i++;
    j++;
    }
    return code;

    }
      

  6.   

    //可以完全满足你的要求,已经测试难过,不过代码有点杂乱
    string A(string str)
    {
       return string.Format("{0}-{1}-{2}-{3}",(str.Length>=4)?str.Substring(0,4):str.PadRight(4,'X'),
          (str.Length>=8)?str.Substring(4,4):((str.Length>=4)?str.Substring(4):"").PadRight(4,'X'),
          (str.Length>=12)?str.Substring(8,4):((str.Length>=8)?str.Substring(8):"").PadRight(4,'X'),
          (str.Length>=16)?str.Substring(12,4):((str.Length>=12)?str.Substring(12):"").PadRight(4,'X'));
    }
      

  7.   

    for i=0 to 15-CardNo.length
     CardNo &="X"
    next
    cardNo=CardNo.insert(4,"-")
    cardNo=CardNo.insert(9,"-")
    cardNo=CardNo.insert(14,"-")
    return cardNo.substring(0,19)