2011-06-30 78 views
-1

我需要一个JavaScript代码,将IP地址更改为rexexp,
即:123.123.123.123^123\.123\.123\.123$以及对于网络掩码的相同操作。
任何人有想法?JavaScript IP正则表达式

+2

我认为你需要更好地解释你正在做的事情。 – Karolis

+1

你为什么要这样的正则表达式?字符串比较将会更加简单和高效。 – Quentin

+1

看起来你可以写'ip ='^'+ ip +'$''。但那又如何? – GolezTrol

回答

2

嘛,只是一个拍入黑暗:

var ipaddr = '123.123.123.123', 
    myRegEx = new RegExp('^' + ipaddr + '$'); 

这将生成字符串'^123.123.123.123$'一个RegExp object,也就能使用像

myRegEx.exec(someStringVariable); // returns an array of matches 

这时候你需要是非常有用的用变量构建一个正则表达式“in-code”。如果您只想进行字符串比较,则应该使用等效运算符=====或使用.indexOf()方法。

参考:RegExp()


更新

为字符串内更换期间,只需使用.replace()方法。

var ipaddr = '123.123.123.123'; 

ipaddr = '^' + ipaddr.replace(/\./g, '\\.') + '$'; 
+1

在理论上应该逃脱,但是,根据问题的条件,它是好的:) – Karolis

+0

@Karolis:好点,完全监督它。当然,这些时期需要在现实世界的场景中逃脱。 – jAndy

0

我同意昆汀。使用indexOf代替:

if (searchString.indexOf("123.123.123.123", 0) != -1) { 
    alert("Yo"); 
} 

也许您需要更好地解释问题。

+0

好吧,重点是当我输入一些IP地址时,我希望脚本将它改为正则表达式 – iroll