正則表達式匹配IP地址


項目框架把JavaScript腳本存入數據庫,展示頁面的時候從數據庫讀取字段拼接頁面。正則表達式取出來[\]都變成了雙反斜杠【\\】,

A寫法改成B寫法后問題解決。因為數據庫是把整個js腳本當成字符串存儲的,這種時候,正則表達式不能寫成A的方式,要改成B就可以了。

A:pattern = /^(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])(\.(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])){3}$/g;

B:pattern =new RegExp('^(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])(\.(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])){3}$');

<html>

<head></head>
<body onload='test();'>
<script>
function test2(){
var ipstr='1.1.1.1';
var array=[];
array.push(ipstr);
var pattern =new RegExp('^(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])(\.(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])){3}$');
//pattern = /^(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])(\.(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])){3}$/g;
alert(pattern.test(array[0]));
}
function test(){
var ipstr='1.1.1.1/5,1.1.1.8,1.1.1.9999';
var pattern =/^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}$/g;
var ipArray = ipstr.split(',');
var ipArrayTotal = [];
for(var i=0;i<ipArray.length;i++){
if(ipArray[i].indexOf('/')<0){
alert(ipArray[i]);
ipArrayTotal.push(ipArray[i]);
}else{
var ip1=ipArray[i].substring(0,ipArray[i].indexOf('/'));
var ip2 = ip1.substring(0,ip1.lastIndexOf('.')+1)+ipArray[i].substring(ipArray[i].indexOf('/')+1,ipArray[i].length);
ipArrayTotal.push(ip1);
ipArrayTotal.push(ip2);
alert(ip1+":"+ip2);
}
}
for(var i=0;i<ipArrayTotal.length;i++){
debugger;
//alert(pattern.test('1.1.1.1'));
pattern.lastIndex = 0;
if(pattern.test(ipArrayTotal[i])){

alert('匹配');
//alert(pattern.test(ipArrayTotal[i]));
}else{

alert("用戶自帶互聯IP格式不合法,請重新輸入");
return;
}
}
}
</script>

</body>
</html>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM