此脚本是匹配1到10的整数,现在想改一下,
首先匹配由七个字符组成的字符串(前两个是MM,后五个是数字,如:MM00001),
若匹配成功,则输出后面的数字,设为p(即,如是MM00001,则1;如是MM00111,则是111),转到页面browse.php?ID=p;
若匹配不成功,看是否匹配整数(1,10)
              若匹配,则转到页面browse.php?ID=
              若不成功,打出   can not do  <SCRIPT>   
function doit(fm){
  var n = document.getElementById("MMID").value;
  if(isNaN(n)){alert("can not do"); return false;}    
  n = parseInt(n,10);
  if(n>10) {alert("can not do"); return false;}
  fm.action = "browse.php?ID=" + n;
  fm.submit();
}
</SCRIPT>

解决方案 »

  1.   


    <script type="text/javascript">
    <!--
    function doIt(){
    var pass = "MM00001";
    var reg = /^MM(\d{5})$/;
    if(reg.test(pass)){
    alert(parseInt(RegExp.$1, 10));
    // 转
    }else if(/^([1-9]|10)$/.test(pass)){
    alert(pass);
    // 转
    }else {
    alert('no');
    }
    }
    doIt();
    //-->
    </script>
      

  2.   

    麻烦2楼  再看看
    我输入1,网址显示browse.php?ID=1,得到想要的结果
      输入MM00001,网址也显示browse.php?ID=1,但是结果不正确
      function doit(fm){
        var m;
        var n = document.getElementById("ID").value;
        var reg = /^MM(\d{5})$/;
        if(reg.test(n)){
            m = parseInt(RegExp.$1, 10);
        }else if(/^([1-9]|10)$/.test(n)){
            m = n;
        }else {
            alert('no');
        }
     fm.action = "browse.php?ID=" + m;  
    }
      

  3.   

    是我没看明白你的意思?
    不是如果文本时MM00001就变成1?<input type="text" id="ID" value="MM00001"/>
    <script type="text/javascript">
    <!--
    function doit(fm){ 
        var m; 
        var n = document.getElementById("ID").value;     var reg = /^MM(\d{5})$/; 
        if(reg.test(n)){ 
            m = parseInt(RegExp.$1, 10); 
        }else if(/^([1-9]|10)$/.test(n)){ 
            m = n; 
        }else { 
            alert('no'); 
        } 
    alert(m)
    //fm.action = "browse.php?ID=" + m;  
    } doit();
    //-->
    </script>
    没问题呀
      

  4.   

    四楼的大哥,你好。
    代码是没有问题,结果(网址)也没问题,就是最后显示(网页)的内容有问题
        输入1,网址显示browse.php?ID=1,得到想要的结果 
        输入MM00001,网址也显示browse.php?ID=1,但是结果不正确 
    顺便再说一哈,这段代码使用在模板里的,
    在有个贴吧搜到个答案《《因为有的位置是用模板做的,子页面的连接显示设置成他网站的连接,所以你看到的网址是一样的,其实是不同的页面》》
    我也看不懂,就把某页脱离模板,但还是不行,郁闷了好几天了,马上就要用了,望指点,小弟再次谢过了!
      

  5.   

    fm.action = "browse.php?ID=" + m;
    之前加个赋值document.getElementById("ID").value = m;
    fm.action = "browse.php?ID=" + m;试试看^_^
      

  6.   

    因为你是通过form表单提交的,在服务端提取该值的时候,提取的是input控件的值,而不是URL后面的值
    所以导致你取出的数据不正确