带有星号掩码的ip地址的javascript正则表达式 [英] javascript regex for ip address with asterisk masking
本文介绍了带有星号掩码的ip地址的javascript正则表达式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想用星号(*)为IP地址做一个正则表达式 符合以下条件的
I would like to make a regular expression for an IP address with asterisk(*) which matches these below:
数字127.0可以是0到255之间的任何数字.
**[TRUE]**
127.*.*.*
127.0.*.*
127.0.0.*
**[FALSE]**
127.*.*.1
127.*.0.1
127.0.*.1
到目前为止,我所做的是...,当然,未能弄清楚. 我完全迷路了.
What I have made until now is...and of course, failed to make it out. I totally got lost..
_regex = function(value) {
var _match = /^(?:(\d|1\d\d|2[0-4]\d|25[0-5]))\.(?:(\*|\d|1\d\d|2[0-4]\d|25[0-5]))\.(\*|(?:\d{1,2}(?:.\d{1,3}?)))\.(\*|(?:\d{1,3}(?:\*?)))$
if(_match.test(value)){
//do something;
}
}
如果您有任何学习的机会,我将不胜感激. 谢谢.
If you give me any chance to learn this, would be highly appreciated. Thanks.
推荐答案
我认为您要寻找的是否定性的看法,以确保没有数字出现在星号之后.
I think what you are looking for is a negative look ahead to make sure no number follows an asterisk.
例如:(\*(?!.*\d))
工作示例:
var ips = [
'127.*.*.*',
'127.0.*.*',
'127.0.0.*',
'127.*.*.1',
'127.*.0.1',
'127.0.*.1'
];
var regex = /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|(\*(?!.*\d)))(\.|$)){4}$/;
for(var i = 0; i < ips.length; i++){
console.log(ips[i] + ': ' + regex.test(ips[i]));
}
这篇关于带有星号掩码的ip地址的javascript正则表达式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文