javascript的正则表达式

正则的产生:
注册页面 - 表单 - 表单元素 - 最终需要将表单的数据提交给服务器 - js出现之前 - 服务器拿到数据需要做校验 - 对服务器的负担比较重 ,js就产生了一个专门为了校验数据而产生的一个语法-正则表达式
除了可以校验数据,还可以提取一些想要的固定模式数据,还可以替换数据 - 替换字符串,正则表达式主要用于字符串的处理 , 每种数据都有自己的规则 - 正则表达式来描述这个规则 - 看数据是否满足这个规则。

一.如何创建正则表达式
1.字面量的形式 - 直接创建

var reg = /写一些规则/;

2.以构造函数的形式创建正则表达式

var reg = new RegExp();
//js基于对象的,任何操作在内部都是对象 - 任何数据都有构造函数的创建方式

二.正则的方法
1.test验证方法

var reg = /\d/;
// \d 代表 任意一个数字  0~9
var str = 9;
var res = reg.test(str); // 验证这个字符串是否满足这个规则
console.log(res);//满足是true,不满足是false

2.search方法

var reg = /\d/;
var str = 'abcdefg';
var res = str.search(reg);
// search方法就是在字符串中查找满足正则表达式的一部分
// search也可以作为验证的方法 - 如果找到了就返回下标,找不到返回-1
console.log(res);

3.exec提取方法

// 提取 - 就是将字符串中满足正则表达式中的部分提取出来
var reg = /\d/;
var str = 'abcd2efg';
//语法:正则.exec(字符串)
var res = reg.exec(str);
console.log(res);
// exec方法返回的是一个数组,通常匹配到的内容,就是这个数组的第一个元素
console.log(res[0]);
// 从一个字符串中提取数据,咱们通常会从一个地址栏中提取数据

4.match方法

var reg = /\d/;
var str = 'abc2defg';
// 字符串.match(正则) - 从字符串中提取满足规则的
var res = str.match(reg);
// 返回数组,需要的值是第一个元素
console.log(res);

5.replace方法

var reg = /\d/;
var str = '1是一';
var ment = '*';
// 字符串.replace(正则表达式,新内容)
var res = str.replace(reg,ment);
console.log(res);//打印的是:*是一

三.元字符 - 用来代表数据中规则
\d 代表任意一个数字 - [0-9]
\D 代表任意一个非数字
\w 代表任意一个数字、字母、下划线
\W 代表任意一个非数字、字母、下划线
. 代表任意一个字符
\s 代表任意一个空格
\S 代表任意一个非空格
补充规则
还可以使用一些别的字符
规则: /bc/ — 规则还可以是普通的字符

四.修饰符-字符的修饰
1.{}修饰符

var reg = /\d/;
//如果要提取多位数字 - 对字符做修饰
var reg = /\d{2}/;
// {n}  表示这个字符要有n个
// {n,m}  表示最少n位,最多m位 都能匹配到
// {n,}    表示最少n位,少于n位就匹配不到,大于n位都能匹配到

2.+ 修饰符:修饰字符的位数,至少1位,至多不限

var reg = /\d+/;
var str = 'asdfasdf';
var res = str.match(reg);//macth提取方法
console.log(res);//null,因为str中没有数字

3.? 修饰符:修饰字符的位数,至多1位,再多了就匹配不到 - 可有1位也可以没有

var reg = /\d?/;
var str = 'asdfasdf';
var res = str.match(reg);
console.log(res);

4.* 修饰符:所有位都可以 - 可有可无,可以有任意位

var reg = /\d*/;
var str = '123456asdf';
var res = str.match(reg);
console.log(res);

5 万能匹配 - . 代表任意字符,* 代表任意位 /.*/ - 可匹配到任意内容

var str = 'http://www.baidu.com';
var reg = /.*/;
var res = str.match(reg);
console.log(res);

6.首尾修饰符
首尾的修饰符 - 修饰必须以谁开头,必须以谁结尾
开头的修饰符是 ^
结尾的修饰符是 $

var reg = /^[1-9]\d{4,11}$/;
var str = '1234567891011';
var res = reg.test(str);//test验证方法
console.log(res);//打印false

7.取反修饰符

var reg = /[^0]/;
// 中括号中的上档键表示取反的意思,非0
var str = '1abcdef';
var res = str.match(reg);
console.log(res);

8.或者修饰符

// 邮箱的正则表达式
// 邮箱的规则:6~18位,由字母、数字、下划线组成
// 以字母开头
// var reg = /^[a-zA-Z]/; // 以字母开头
// 后面是数字、字母、下划线
// 或者 使用  |
// 小括号是一个整体
// 在正则中 . 是一个特殊符号 - 如果表达一个普通的字符 .  就应该对特殊字符进行转义 - 将特殊含义转成普通含义 - 在字符前面加 反斜杠 - 反斜杠只修饰一个字符
var reg = /^[a-zA-Z]\w{5,17}@(163|126)\.com$/;
var email = 'a1leifeng@126.com';
var res = reg.test(email);
console.log(res);

9.中文汉字的匹配

// 汉字的专门的匹配方式
// [\u4e00-\u9fa5]
// 阿斯克码
// unicode 表 - 中包含很多的中文汉字
// unicode - \u跟了几个16进制的数字
var str = '我注意你很久了';
var reg = /[\u4e00-\u9fa5]+/;//+ 匹配多位汉字
var res = str.match(reg);
console.log(res);

10.模式修饰符

var reg = /\d+/g;
// 在两个斜杠的后面加一个小写的g,表示全局匹配 --- 贪婪匹配

// 还有一个模式修正符是 忽略大小写的  i
var reg = /html/gi;
var str = 'i love Html very much and HTML is very good';
//如果有敏感词出现了多次,如何替换?
var ment = 'js';
var res = str.replace(reg,ment);//将str中的全部Html替换成js
console.log(res);
//如果是匹配大小写的a-zA-Z 就可以  /^[a-z]/i

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值