正则表达式

RegExp

	var reg = /abc/;
	var str = 'abcd';

*reg.test(str)====>true*

	var reg = /[1234567890][1234567890][1234567890]/g; //三个连着的数字范围(1234567890)
	var str = "2312jo3gh123789d4najdiic923jf";
	var reg = /[ab][cd][d]/g; //三个连着的字符范wei
	var str = "abcd";
	 ^ 放在表达式里面 是 除了(。。。)的意思
	 var reg = /[^a][^b]/g;
	 var str = "ab1cd"; 

上面这穿代码在控制台运行一下:

在这里插入图片描述

	var reg = /(abc|bcd)/g;//    | 是或的意思
	var str = "bcd"

看看结果:
在这里插入图片描述

	var reg = /(abc|bcd)[0-9]/g;//    | 是或的意思
	var str = "bcd1"

这样写也是正确的
在这里插入图片描述

元字符
	var reg = /\w/g;
	var str = "bcd2";
	\w === [0-9A-z_]
	\W === [^\w]

在这里插入图片描述

	\d === [0-9];
	\D === [^\d];	
	\s === [\t\n\r\v\f ];//最后一位是空格。
	\S === [^\s];
	\b === 单词别介
	\B === 非单词边界

试一下 \b:

	var reg =/\bc/
	var str = "abc cde efg";

结果:

	\u0000//四位
	
		
	
	\u010000 - \u01ffff  //第一层
	\u020000 - \u01ffff  //第二层
	\u100000 - \u10ffff  //第三层
	. === [^\r\n]
量词(贪婪匹配原则)
	 //n+   {1, ++}
	 //n*   {0, ++}
	 //n?   {0,1}
	 //n{X} {x}
	 //n{x,y} {x,y}
	 //n{x, } {x, ++}
	 //^n 以n开头   n&以n结尾
方法
  • reg.test()

  • reg.exec()
    reg.lastIndex 不加g的话lastIndex永远不会动。

  • \1 匹配的是前面子表达式的内容。
    所以来实现一个匹配 xxxx 四个相同的:

	var str = "aaaa";
	var reg = /(\w)\1\1\1/g;
  • 再来一个匹配 aabb形式的
	var str = "aabb";
	var reg = /(\w)\1(\w)\2/g;
字符串的属性
  • str.search(reg); 会返回对应的位置。
    若匹配不到位置 返回 -1。
  • reg.replace();
	var str = "aa";
	var reg = /a/g;
	console.log(str.replace("a", "b")); //非正则表达式。

不加g的时候:
在这里插入图片描述
在这里插入图片描述
加g之后:
在这里插入图片描述
在这里插入图片描述
把aabb替换成bbaa:

	var reg = /(\w)\1(\w)\2/g;
	var str = "aabb";
	console.log(str.replace(reg, "$2$2$1$1"));

还有一种方法:

	var reg = /(\w)\1(\w)\2/g;
	var str = "aabb";
	console.log(str.replace(reg,function($, $1, $2) {
		return $2 + $2 + $1 + $1;
	}));

实例:
把 the-first-name 变成小驼峰形式:

	var str = "the-first-name";
	var reg = /-(\w)/g;
	console.log(str.replace(reg, function($, $1) {
		return $1.toUpperCase();	
	}))

在这里插入图片描述
成功。
正向预查 正向断言

	var str = "abaaaaa";
	var reg = /a(?=b)/g;    这句话的意思时,a后面必须跟的是b才行(的a才符合条件)。
	var reg = /a(?!b)/g;    这句话的意思时,a后面不跟b才行(的a才符合条件)。	 

变成非贪婪匹配(能少就不多个了)

	var str = "aaaaaa";
	var reg = /a?/g;

字符串去重

	vat str = "aaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbcccccccccccccccc";
	var reg = /(\w)\1*/g;
	str.replace(reg, "$1");

给100000000从后往前每三位加一个 , ;

	var str = "100000000000";
	var reg =/(?=(\B)(\d{3})+$)/g;
	console.log(reg, ",");

在这里插入图片描述
成功!。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值