正则表达式

正则表达式

正则表达式:规则表达式,主要用于规定字符串的出现规则

通过正则指定特定字符串出现的规则,去匹配某些字符串,如果匹配成功,就可以得到结果

最简单的正则表达式语法

关键字正文:abc

正则对象 生成正则表达式

语法糖:

​	var reg = /abc/;

构造函数

	var reg = new RegExp("abc");

test方法 检测一个字符串是否符合这个规则,如果符合返回true,否则返回false

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script>
			var str = '那天我去了她家,我对她说你家真大';
			//声明一个正则
			var reg = /我/;
			var res = reg.test(str);
			alert(res);
		</script>
	</body>
</html>

元字符 预定义字符集 ;正则表达式 自己定义好的,代表特殊含义的字符

.  任意字符  换行除外
\ 转义      \.普通的点
\d  数字
\w  数字 字母 下划线
\s  空字符  空格
\D  非数字
\W  非 数字字母下划线
\S  非空

限定符 用于修饰元字符出现的次数 量词

  • * : 前一个内容重复至少 0 次,也就是可以出现 0 ~ 正无穷
  • + : 前一个内容重复至少 1 次,也就是可以出现 1 ~ 正无穷
  • ? : 前一个内容重复 0 或者 1 次,也就是可以出现 0 ~ 1
  • {n} : 前一个内容重复 n 次,也就是必须出现 n
  • {n,} : 前一个内容至少出现 n 次,也就是出现 n ~ 正无穷
  • {n,m} : 前一个内容至少出现 n 次至多出现 m 次,也就是出现 n ~ m

注意:用来修饰 元字符 修饰时前面一个元字符

边界符

需要完整匹配 一个字符 从开头到结束 每一位规则 数量规则

^匹配开头

$匹配结束

	//必须是 小写字母a开头 总共是 4-8位数字字母_
			var  reg = /^\w{3,7}$/;
			var a = 's74935';
			var b= 'a23845675493821';
			var c= 'a23456';
			alert(reg.test(a)); //false
			alert(reg.test(b));//false
			alert(reg.test(c));//true

其他符号

[] 备选字符集 匹配一位的 可以在中括号写 这一位可能出现的多个字符

​ 如果这一位的备选字符是连续的 比如 a-z A-Z 0-9可以用 -连接

//必须是 大写字母A-Z开头 总共是 4-8位数字字母_
			var reg = /^[A-Z]\w{3,7}$/;
			var a = "A28248";
			var b = "a34546";
			var c = "F468354695879689";
			alert(reg.test(a));  //true
			alert(reg.test(b)); //false
			alert(reg.test(c));		//false
//必须是 大写字母A-Z或者_或者1-7开头 总共是 4-8位数字字母_
	var reg = /^[A-Z_1-7我]\w{3,7}$/;  首字母可以是A-Z或者_或者1-7或者我

() 分组 将几位作为一个完整的规则

需求:有一个字符串 结束 必须是三位 abc出现一次 或者abc没有

使用场景:多位字符需要被修饰符修饰 (量词),需要加()

var reg = /^\w{3,7}(abc)?$/

| 选择 或

字符串结尾 可以是 a或b

var reg =/^\w[acd457]a|c$/;
var str = 'c';
alert(reg.test(str));//true
错误原因:js 将 | 两边作为两个选择 规则就变成了 可以是 \w[acd457]a 或者 c
怎么解决:用()分组解决
var reg =/^\w[acd457](a|c)$/;
注意:选择 一般都会伴随着分组

备选字符集取反 [^] 取反

[^abc] 除了abc的任意字符

关键字

i   ignore 忽略大小写
/[a-z]/i;   a-zA-Z
g   global  全局匹配  不会只找到第一个复合条件的字符就立即返回,继续查找
/\w/g
注意:
	关键字是用来修饰 正则对象的 写在正则的后面

如何匹配字符串开头和结尾的空格

var  reg = /^\s*|\s*$/;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值