str code="pc....";
如果用户没有输入,提示用户输入编号
如果用户输入的是:code=pcmmm,则提示后四位必须为数字
如果用户输入的是:code=pc11,则系统自动补零形成pc0011最好能很正则表达式一次性解决上面3个问题.谢谢大家了

解决方案 »

  1.   

    <script type="text/javascript">
    function mk(el)
    {
    var value = el.value.replace(/^pc[0|.]*/g, '').substr(0,4);
    el.value = 'pc' + (Array(5-value.length).join('.') + value);
    }
    </script>
    <input value="pc...." onkeyup="mk(this)" onblur="this.value=this.value.replace(/\./g, '0')"
    onfocus="mk(this);var a=this.createTextRange();a.moveStart('character',this.value.length);a.select();"/>
      

  2.   

    在1楼基础上修改,<script type="text/javascript">
    function chk(el)
    {
        var value = el.value.replace(/^pc[0]*/g, '').substr(0,4);
        var ret = false;
        if (isNaN(value)) document.getElementById("prm").innerHTML = "Error:pc8888"
        else {
          document.getElementById("prm").innerHTML = "Ok";
          ret = value;
        }
        return ret;
    }
    function md(el)
    {
        var value = chk(el);
        if (value!=false) {
          el.value = 'pc' + (Array(5-value.length).join('0') + value);
        }
    }
    </script>
    <input value="pc0000" onkeyup="chk(this)" onblur="md(this);"
    onfocus="chk(this);"/>
    <span id=prm>&nbsp;</span>