17 - JavaScript正则表达式

正则表达式是什么

 规则表达式

正则表达式的应用场景

 1》表单验证
 2》解析url参数
 3》筛选.... 

正则表达式的定义

 1》字面量形式  ===》 //
 2》构造函数形式 ===》new RegExp()
*****区别
	  字面量形式内不能够放入变量|函数..
	  构造函数形式内可以放入变量|函数

正则表达式的方法

 1》test:
	功能:看内容是否与正则匹配
	返回:布尔值, 
		 匹配==》true   
		 不匹配===>false
 2》exec
	功能:看内容是否与正则匹配
	返回:匹配==》数组
			不匹配==》null

正则表达式的元字符

[]  ===》匹配括号内的任意“一个”字符
[^]  ===》除了括号内的任意字符
[0-9] ===》匹配0至9的任意数字
[a-z] ===》匹配a至z的任意小写字母
[A-Z] ===》匹配A至Z的任意大写字母
\d   ===》匹配数字  :[0-9] 
\D   ===》匹配非数字
\w   ===》匹配数字、字母、下划线  :  [0-9a-zA-Z_]
\W   ===》匹配非数字、字母、下划线
\s   ===》匹配空格
\S   ===》非空格
\b   ===》匹配边界
.    ===》除换行符以外的任意字符

转义符

\

正则表达式限定符

^ ===》以字符串的起始(开始)
$ ===》以字符串的结束(结束)

正则表达式重复

{n}   ====>匹配重复N次
{n,}  ====》匹配重复最少n次,最多不限
{n,m} ====》匹配重复最少n次,最多m次
*     ====》匹配重复最少0次,最多不限
+	  ====》匹配重复最少1次,最多不限
?     ====》匹配重复最少0次,最多一次

选择符

|  ===》或

修饰符

i  ===》不区分大小写
g  ===》全文匹配(全局模式)
m  ===》换行匹配

分组

( ) ==》把内容组合起来

字符类

RegExp.$1...$99

注意:
	1》要使用字符类,必须使用一下正则
	2》要使用字符类返回结果,必须正则中有分组

字符串匹配正则方法

	1》search
			如果匹配函数下标位置
			如果不匹配返回-1
			******不支持全局*****
			
	2》match
			如果匹配返回数组
			如果不匹配返回null
			
			match和exec 区别
			match支持全局
			exec不支持全局,可以用循环遍历出来
			
	3》replace	
			
			语法:字符串.方法名称

案例

//验证电话
var Tel = document.getElementById("tel");

Tel.onblur = function(){

    var reg = /^1[3-8]\d{9}$/;

    if(reg.test(this.value)){
        this.nextElementSibling.innerHTML = "Tel正确"
    }else{
        this.nextElementSibling.innerHTML = "Tel不正确"
    }
}

//验证用户名
var User = document.getElementById("User");

User.onblur = function(){

    var reg = /^\w{6,12}$/;    
    
    if(reg.test(this.value)){
        this.nextElementSibling.innerHTML = "User正确"
    }else{
        this.nextElementSibling.innerHTML = "User不正确"
    }
}

//验证邮箱
var Email = document.getElementById("Email");

Email.onblur = function(){

    var reg = /^\w+@\w{2,6}\.\w{2,5}$/;    
    
    if(reg.test(this.value)){
        this.nextElementSibling.innerHTML = "Email正确"
    }else{
        this.nextElementSibling.innerHTML = "Email不正确"
    }
}


//去空格
function t(str){
    var reg = /^\s*|\s*&/g; //以空格开头 0/多个 再以 以空格结尾 0/多个
    var str1 = str.replace(reg,"")

    return str1;

}
document.write(t("    abc     ")); 


//匹配claaName
function cName(cName){
    var li = document.getElementsByTagName("*");
    var reg = new RegExp("\\b"+cName+"\\b");
    var arr =[];

    for(var i = 0;i<li.length;i++){
        if(reg.test(li[i].className)){
            arr.push(li[i])
        }
    }
    return arr;

}


document.write(cName("lis").length); 


//解析URL
function fn(c){
        var str = "https://www.xxxx.com/s?ie=UTF-8&wd=1"

        var reg = new RegExp (c+"=([^&]+)");
        reg.test(str);
        
        return RegExp.$1;
}
document.write(fn("wd")) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值