2013-03-06 126 views
0

我的目标是检测一个字符串是否为IP格式(4个数字以句点分隔),下面的语句有效,但我觉得必须有一种缩短的方法。如果有,请告诉我。如果没有,那也没问题,我只想知道是否有。IP地址正则表达式简化

/^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/ 

请注意,这些都在JavaScript中。 哦,我唯一的建议是缩短它。我不需要它比现在更严格。

+0

你的陈述确实没有**工作。例如'9898.2.2.34343434'或'555.555.555.555'都是IP地址? – Kent 2013-03-06 21:47:15

+0

我不需要严格。唯一解析通过的是合法的IP地址,我不需要知道是否空白限定为一个IP,我需要知道它是否跟随在点号的点号点号结构。 – Xymon 2013-03-06 21:50:33

回答

4

如果你不关心号码模式是多久,只是对结构这应该工作,更简洁:

^([0-9]+\.){3}[0-9]+ 
+0

谢谢!正确的是我在找什么:-) – Xymon 2013-03-06 21:54:54

+1

如果shortness是优先级'[0-9]'会比'\ d'更好。所以'^(\ d + \。){3} \ d + $'。 – MikeM 2013-03-06 22:25:02

1

当然可以。 尝试用下面的代码

^([0-9] +)。{3} [0-9] +

1

那么,如果缺少肯特指出

9898.2.2.34343434555.555.555.555

是正常的,你的数据表现良好^(\d+\.){3}\d+会稍微短一些。 试图保存字节?

+0

是的,我只是遇到了一些长代码的问题,而这些代码并没有什么必要。我正在做的是使用它来为请求我的服务器的主机切换“isIP”布尔值。 – Xymon 2013-03-07 02:05:20