求正则表达式及具体的JS实现方法
发布网友
发布时间:2022-04-07 05:57
我来回答
共3个回答
懂视网
时间:2022-04-07 10:19
javascript正则表达式验证IP地址的端口合法性
if (!(/^[1-9]d*$/.test(port) && 1 <= 1 * port && 1 * port <= 65535)){
return false
}
提示:
您的端口不符合范围:0-65535
下面看下JavaScript(Js)正则表达式验证IP+端口号,代码如下:
var ip="192.168.2.1:8080"
var pattIp=/^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]):([0-9]|[1-9]d{1,3}|[1-5]d{4}|6[0-5]{2}[0-3][0-5])$/;
if(pattIp.test(ip)==false)
{
return false;
}
推荐教程:js教程
热心网友
时间:2022-04-07 07:27
因为正则的规则非常多, 我在这里只写JS内常用到的, 其它不常用的和更多, 你可以去看JS手册, 比如JS55.chm
1, 新建
//是新建RegExp对象的快捷方式
如:
/abc/
它等同于new RegExp("abc");
所以在JS内新建正则有以上两种方式, 常用/ /方式比较简单
新建时正则的参数有i, g, m, 它们分别表示为:
i - 忽略大小写匹配
g - 全局匹配, 它只影响match, replace, exec等函数的返回值, 不对test测试结果起作用
m - 多行匹配 (需要与^ $一起用才有用)
用法:
/abc/i /abc/g /abc/m或任意组合如/abc/ig
开头匹配符^表示必须以某字符开始, 如
/^abc/g 那么匹配的字符串必须以abc开头, 如abc123456
结尾匹配符$表示必须以某字符结尾, 如
/abc$/ 那么匹配字符串必须以abc结尾, 如23132abc
所以:
/^abc$/ 就只能匹配abc这个字符串
举例:
function testABC(str)
{
return /^abc$/i.test(str);
}
alert(testABC("ABC")); alert(testABC("DEF")); alert(testABC("abc")); //试下去掉i就不能匹配了
范围匹配符[]表示匹配一个范围
如[0-9] [a-z] [A-Z]表示匹配里面指定的范围
如/^a[c-f]zzz$/ 就只能匹配aczzz adzzz aezzz 和afzzz
指定长度匹配
{m}, {m, n} 表示最少m个, 最多n个, 如:/a{1}/只匹配1个a, /a{1,} 表示最少1个a或N个a, /a{1,3}/ 最少一个a最多3个a
*表示0个或任意个字符
如a* 表示匹配0个a或N个a
+表示1个或任意个字符
如a+表示匹配1个或N个a
?表示0个或1个
如a?表示0个a或1个a
.表示除了换行符以外的任意字符; \w等同于[A-Za-z0-9_]; \d等同于[0-9];
举例:
/^.+$/匹配1个或N个除了换行符以外的任意字符
/\d{3}/匹配3个数字
/\w{5}/匹配5个字母或数字或_
转义符:
有时候比如要匹配? * +这样的字符怎么办, 它已经是正则语法符号了, 这时就要用到转义符"\"
比如, 匹配1个或N个?号, 正则为: /^\?+$/
选择符|, 与分组符()
(|) 也就是或的意思, 比如(abc|def)就只能匹配abc或def
举例: /^a(pp|ng)le$/ 就只能匹配apple或angle, 分组的意思是将这个匹配存储进match, exec, replace的返回结果数组中
好了, 上面的你理解了的话, 你题目里面的就可以自己写出来了.
最简单的正则(不考虑年月份大小)也就是4个数字加\/再加2个数字再加\/再加两个数字 (/符号要转义, 所以为\/), 你自己试试写写看, 用\d或[0-9]都可以
另外, 基本的正则学会后, 要学习高级的正则.
如:
1, 非贪婪匹配模式: ?符跟在*, +, ?, {m}, {m,}, {m, n} 这些规则之后时为非贪婪匹配模式
2, 不储存分组(?:) 非常长的字符串匹配时速度非常明显
3, 正向预查?=和负向预查?!
等等
纯手工.....
有什么问题可以追问.....
热心网友
时间:2022-04-07 08:45
\d{4}/\d{2}/\d{2}