正则表达式详解

有时候,不是因为你没有能力,也不是因为你缺少勇气,只是因为你付出的努力还太少,所以,成功便不会走向你。而你所需要做的,就是坚定你的梦想,你的目标,你的未来,然后以不达目的誓不罢休的那股劲,去付出你的努力,成功就会慢慢向你靠近。

导读:本篇文章讲解 正则表达式详解,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

规则表达式

二,应用场景

表单的验证

三,正则的使用

定义:
    字面量://
    构造函数: new Regexp()
区别:
    new Regexp():放入变量

四,正则的方法

test():检测一个内容是否与正则匹配
        如果匹配返回true
        否则返回false
        
exec():检测一个内容是否与正则匹配
        如果匹配返回数组
        否则返回null

元字符

元字符
[]匹配中括号内任意一个字符
        var reg1 = /[abc]/;
        
[^]除了中括号内任意字符
        var reg1 = /[^abc]/;
        
[0-9]匹配0到9的数字/匹配单个数字/可以修改范围
        var reg1 = /[0-9]/;
        
[a-z][A-Z]匹配字母/区分大小写/可以修改范围
        var reg1 = /[a-zA-Z]/;
        
\d  匹配数字
\D  匹配非数字
​
\w  匹配数字,字母,下划线 ===> [a-zA-Z0-9_]
\W  匹配非数字,字母,下划线
​
\s  匹配空格
\S  匹配非空格
​
\b  匹配边界
\B  匹配非边界
​
.   匹配除换行符以外的任意字符

转义()

/\./
本身失去原有的功能

一,选择符

|:或

二,修饰符

i:不区分大小写
g:全文匹配 全局

三,字符串方法可以配合正则去使用

replace() 替换
    var str = 'a,b,c,a';
    //加g表示全局 全部的a都替换 否则只替换第一个
    console.log(str.replace(/a/g,'w'))

math(支持全局,字符串方法):类似与exec(正则方法) 查找返回对应的值,【值是数组】。没有找到返回Nnull

限定符

^ 以什么开始
$ 以什么结束

重复

{n}     重复n次   针对于前一个
{n,}    重复最少n次,最多不限
{n,m}   重复最少n次,最多m次
​
*       重复最少0次,最多不限
+       重复最少一次,最多不限
?       重复最少0次,最多一次

贪婪模式

一,贪婪模式
    /\d{3,6}/g;      g    取最大值6
二,非贪婪模式(懒惰模式)
    /\d{3,6}?/g;     ?    取最小值3
    
    例子:var reg1 = /\d{3,6}?/g;
        var str1 = '12345678912345';
        console.log(str1.replace(reg1,'*'))

一,分组

() :    把部分内容组合在一起

二,字符类:获取分组内的内容

$1
$2
$3
...
​
前提:必须执行一次 必须要分组
​
var reg1 = /^(\d{4})-(\d{2})$/;
var str1 = '2021-06';
console.log(str1.replace(reg1,'$2'));
reg1.test(str1); console.log(RegExp.$2,RegExp.$1);

前瞻

正向前瞻:(?=):匹配符合的
   
 //看一看 \d(数字)后面是不是字母,是的话匹配
    var reg1 = /\d(?=[a-z])/g;
    var str1 = '1a2b*%3asd5';
    console.log(str1.replace(reg1,'*'));
    //*a*b*%*asd5
    
负向前瞻:(?!):匹配不符合的
    //看一看 \d(数字)后面不是字母的,不是的话匹配
    var reg1 = /\d(?![a-z])/g;
    var str1 = '1a2b*%3asd5';
    console.log(str1.replace(reg1,'*'));
    //1a2b*%3asd*
***jS正则没有后顾

//复杂密码 //可以有数字可以有字母,并且是3-6位 //必须有字母、必须有数字 //(?=.d):任意字符后必须是数字 //(?=.[a-z]):任意字符后必须是字母 var reg=/(?=.\d)(?=.a-z)[0-9a-zJ]{3,6}$/i; console. Log( reg.test(this value));

例子

 

//以字母a开头,后一位必须是数字
	//字母a后面必须是一位数字
	// var reg1 = /^a\d/;
	// var str1 = 'a1';
	// console.log(reg1.test(str1));
	
var btn = document.getElementById('btn'),
	tel = document.getElementById('tel');
	
	btn.onclick = function(){
		//正则
		//以1开头 第二位必须是3578中一位 剩下九位只能为数字
		var reg = /^1[3578]\d{9}$/;
		if(reg.test(tel.value)){
			alert('手机号正确');
		}else {
			alert('错误');
		}
	}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/144818.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!