当前页面: 开发资料首页 → J2SE 专题 → 求助一个问题 ?
求助一个问题 ?
摘要: 求助一个问题 ?
查询IP地址: select 地区 from ip表 where 用户ip>起始IP and 用户ip<结束ip
通过这条sql语句就可以查询出用户ip所对应的地区结果。由于用户ip与起始ip和结束ip的比较属于字符串比较,如果用户ip为9.1.1.1,那么它与61.54.231.245比较的结果就是前者大于后者,因为用户ip的第一个字符“9”大于61.54.231.245中的第一个字符“6”。
我们该怎样让它返回正确的结果。思路是 将9.1.1.1变化成009.001.001.001后与061.054.231.245进行比较就可以了,可以用正则表达式的方法来解决。
那么该怎样解决呢? 请高手快来啊。
焦急等待中~~~~~~~~~
JavaScript版本:
<script>
var str="11.1.111.11";
str=str.replace(/(^|/.)(/d)(/.|$)/g,"$100$2$3");
str=str.replace(/(^|/.)(/d)(/.|$)/g,"$100$2$3");
str=str.replace(/(^|/.)(/d{2})(/.|$)/g,"$10$2$3");
str=str.replace(/(^|/.)(/d{2})(/.|$)/g,"$10$2$3");
alert(str);
</script>
Java版本:
String str="11.1.111.11";
str=str.replaceAll("(^|//.)(//d)(//.|$)","$100$2$3");
str=str.replaceAll("(^|//.)(//d)(//.|$)","$100$2$3");
str=str.replaceAll("(^|//.)(//d{2})(//.|$)","$10$2$3");
str=str.replaceAll("(^|//.)(//d{2})(//.|$)","$10$2$3");
System.out.println(str);
有没有更简单的方法?
更简单的正则应该没有了
还能再简化一下
<script>
var str="11.1.111.11";
str=str.replace(/(/d)(/.|$)/g,"00$1$2");
str=str.replace(/(/d{2})(/.|$)/g,"0$1$2");
alert(str);
</script>
Java版本:
String str="11.1.111.11";
str=str.replaceAll("(//d)(//.|$)","00$1$2");
str=str.replaceAll("(//d{2})(//.|$)","0$1$2");
System.out.println(str);
不行,上面的简化版本有BUG,还是第一种吧
老大,能不能把你的QQ号告诉我啊,以后不懂的问题直接问你得了
-_-''
19666125
$100是怎么来的?
lip009把你的QQ号告诉我啊,以后不懂的问题直接问你得了
已经告诉你了
$100是$1和00