请问如果替换当输入的值不是数字或者“[abc]”就替换为空。
例如。当输入的是"[abc]",文本框的值还是"[abc]"
例如输入的是:"a"则替换成空
如果输入的是数字,则还保持原值~~~

解决方案 »

  1.   

    <input id="x" type="text" onblur="re()" /><script language="javascript">
    function re(){
    var obj = document.getElementById("x")
    if (!(obj.value=="abc" || !(isNaN(obj.value)))){
    x.value=""
    }

    }</script>
      

  2.   


    <script type="text/javascript">
    var reg="\d*|(\[abc\])*";
    var str="a123231";
    var  tt="";
    if(!str.match(/reg/g))
    {alert(str);
    tt=str.replace(str,"");
    }
    alert(tt);
    </script>
      

  3.   

    if (! /^(?:\[abc\]|\d+)$/.test(input.value))
        input.value = '';
      

  4.   

    <script language="javascript">
    function re()
    {
    var r=/^(\d+|\[abc\]|\d*\[abc\]\d*)$/g;
    var obj = document.getElementById("x").value.toString();
    if(!(r.test(obj)))
    {
    x.value=""
    }
    }
    </script>
    <input id="x" type="text" onblur="re()" />
    这个也可以试试,单匹配数字或[abc]或数字和[abc]的任意组合!
      

  5.   

    yourValue.replace(/^(\d* | (\[abc\])*)/, "");
      

  6.   

    我想LZ的本意是要检测数字和"[任意字符串]",而不是仅仅是"[abc]"if(yourCtrl.value.match(/^(\[\w+\]|\d+)$/ig)==null)  yourCtrl.value="";
      

  7.   

    var reg=/\D/;
    var value="abc";
    if(reg.test(value)){
      value="";
    }正则表达式中\D表示非0-9的字符.