正则表达式是什么
规则表达式
正则表达式的应用场景
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;
var str1 = str.replace(reg,"")
return str1;
}
document.write(t(" abc "));
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);
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"))