正则表达式

正则表达式

### 1.概念:正则表达式是一种模式,可以用来校验, 提取, 替换数据.

2.创建正则表达式:

  1. var reg = /规则/;//字面量形式创建.(推荐使用)
  2. var reg = new RegExp();//构造函数形式创建.
  3. var reg = RegExp()

    js提供了一些使用正则表达式的方法:

    验证方法:

    test 语法: 正则表达式.test(被验证的数据);

var reg = / \d /;//元字符,代表任意一个字符.
var str = ‘5’;
var res = reg.test(str); //验证这个字符串是否满足数字规则
console.log(res);//打印结果 trus


search   	语法	字符串.search(正则表达式);

```js
var reg = / \d /;
var str = 'abcd5efg';
var res = str.search(reg);
//search 方法就是在字符串中查找满足正则表达式的部分;
//search 也可以作为验证的方法, 如果找到符合规则的数据,就返回下标,如未找到则返回 -1 ;
console.log(rse)//答应结果为  [4],此为下标
提取方法:

exec ; 语法: 正则表达式.test(被验证的数据);

var reg = /\d/;
var str = 'abcd2efg';
var res = reg.exec(str);//正则.exec(字符串) - 从字符中提取满足规则的数据
console.log(res);//打印结果为 Array(1)
//exec方法返回的是一个数组,通常匹配到的内容,就是数组中的第一个元素;
console.log(res[0]);//打印结果为 2

match ; 语法: 字符串.match(正则表达式);

var reg = /\d/;
var str = 'abc2defg;
varres = str.match(reg);//正则.match(字符串) - 从字符中提取满足规则的数据
console.log(res);//打印结果为 Array(1)
//match方法返回的是一个数组,通常匹配到的内容,就是数组中的第一个元素;
console.log(res[0]);//打印结果为 2
字符串的替换方法:

replace ; 语法: 字符串.replace(正则表达式,新内容)

var reg = /\d/;
var str = '1是一';   
var ment = '*';	//定义一个新的变量可以用于替换
var reg = str.repl(reg,ment)//替换	字符串.replace(正则表达式,新内容)
console.log(res);	//打印结果为 *是一

3.元字符

元字符的作用是用来代表数据中的规则

\d 代表任意一个数字

\D 代表任意一个非数字

\w 代表任意一个数字,字母,下划线

\W 代表任意一个非数字,字母,下划线

. 代表任意一个字符

\s 代表任意一个空格

\S 代表任意一个非空格

^ 表示匹配行首的文本(以谁开始)

$ 表示匹配行尾的文本(以谁结束)

还可以使用一些别的字符,如:abcd只替换其中的bc

var reg = /bc/;
var str = 'abcd';
var res = str.replace(reg,"*");
console.log(res);//打印结果为  a*c

4.量词:

{n} 表示字符要有n个

{n,} 表示字符最少n位

{n,m} 表示最少n位,最多m位

*表示可以有任意位

+表示最少一位

?表示最多一位

5.特殊符号

[] 字符串用中括号括起来,表示匹配其中的任一字符,相当于或的意思
[^]  匹配除中括号以内的内容
\ 转义符
| 或者,选择两者中的一个。注意|将左右两边分为两部分,而不管左右两边有多长多乱
() 从两个直接量中选择一个,分组
   eg:gr(a|e)y匹配gray和grey
[\u4e00-\u9fa5]  匹配汉字

6.案例

1.写一个qq的表达式

​ 分析规则:最少5位,最多12位.不能用0开头.

var reg = /^[1-9]\d{4,11}$/; // 1-9之间的数字.4-11位的任意数字
var str = '12345678910'//qq号
var res = reg.test(str);//是否满足规则
censole.log(res);//true

2.网易邮箱

​ 分析规则,6-18位,由字母,数字,下划线.由字母开头.

var reg = /^[a-zA-Z]\w{5-17}@(163|126)\.com$/
var email = 'leifeng@163'.com;
var email = '1leifeng@163'.com;
var email = 'leifeng@163'.cn;
var res = reg.test(email);
console.log(res);//true  //false //false
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值