正则表达式

李时增 2011-10-28
有个侦听端口是这样的需求:希望大家帮忙用正则表达式解决咯--!

1> 只能为正整数.

2> 无论开头有多少个0,都忽略不计;如:00001最终为1.

3> 如果开头是1,那么后面可以跟任意9位数字.如1000,000,000到

1999,999,999;也就是共10位数字。

4> 如果开头不是1(这里先除2以外,也就是3-9之间),那么这个侦听端口号最大只

能为999,999,999,也就是只能为9位数字.200,000,000到999,999,999.

5> 如果开头是2,那么这个侦听端口号最大只能为2139,999,999共10位数字.

哎,很烦......



忍者战神 2011-10-28
^0*(([1][0-9]{9})|([3-9][0-9]{8})|([2][0-1][0-3][0-9]{7}))$
李时增 2011-10-28
多谢忍者战神


我稍微修改了一下,支持1-9位数字:

<html>  
<head>  
    <title> New Document </title>  
</head>  
<body>  
   <script>  
       function test_number(){   
            var str =document.getElementById('inputbox').value;    
            reg = /^0*(([1][0-9]{9})|([3-9][0-9]{8})|([2][0-1][0-3][0-9]{7})|(\d{1,9}))$/;   
            if(!reg.test(str)){
            	alert("invalid");
            }else{
            	alert("valid");
            }
        };   
    </script>  
    
    <input id="inputbox" type="text">
    <input name="test" type="button" value="test" onclick="test_number()">
</body>  
</html> 

Global site tag (gtag.js) - Google Analytics