javascript正则表达式的详解

一、javascript正则表达式概述

正则表达式是用于匹配字符串中字符组合的模式,在javaphp里面也有正则表达式,在javascript里的正则表达式是以对象形式存在的
javascript正则表达式的作用表单验证(匹配)、过滤页面的敏感词(替换)、从字符串获取特定的部分(提取)

二、javascript正则表达式特点

1、灵活,逻辑性和功能性强
2、可迅速简单的对字符串进行复杂控制

三、javascript正则表达式的使用

1、利用RegExp对象创建

var regexp1=new RegExp('111');

2、利用字面量创建

var regexp2=/111/;

3、测试正则表达式—test()

用于检测字符串是否符合该规则,返回值为true|false,参数是待检测字符串

语法: regexObj.test(str)

var regexp1=/111/;
regexp1.test(111); 				//true

4、测试正则表达式—exec()

用于检测字符串是否符合该规则,如果返回一个带有符合正则规则的对象,如果没有就返回null,参数是待检测字符串

语法: regexObj.exec(str)

var regexp1=/111/;
regexp1.exec(111); 				//返回一个对象,里面有个属性值为111的字符串

5、正则表达式的特殊符号

边界符说明
^匹配字符串的开头
$匹配字符串的结尾
|或者,相当于or关键字
.匹配任意单个字符,但是行结束符除外:\n \r
            var regexp=/abc/;			//匹配字符串是否有abc字符串
            console.log(regexp.test('abc'));		//true
            console.log(regexp.test('abdc'));		//false
            console.log(regexp.test('abcd'));		//true
            console.log(regexp.test('aabcd'));		//true
            console.log('-----------------------');
            var regexp1=/^abc/;			//匹配字符串是否以abc开头
            console.log(regexp1.test('abc'));		//true
            console.log(regexp1.test('abcd'));		//true
            console.log(regexp1.test('aabcd'));		//false
            console.log('-----------------------');
            var regexp2=/abc$/;			//匹配字符串是否以abc结尾
            console.log(regexp2.test('abc'));		//true
            console.log(regexp2.test('abcd'));		//false
            console.log(regexp2.test('aabcd'));		//false
            console.log('-----------------------');
            var regexp3=/^abc$/;		//匹配字符串是否以abc开头和结尾(匹配是否完全一样)
            console.log(regexp3.test('abc'));		//true
            console.log(regexp3.test('abcd'));		//false
            console.log(regexp3.test('aabcd'));		//false
字符类说明
[ ]匹配字符串中的某一个字符即可
[ a-z ]匹配字符串中a-z的一个字符
[ ^a-z]匹配字符串中除a-z的一个其他字符
			var regexp=/[ily]/;				//匹配字符串是否有abc中某个字符
            console.log(regexp.test('I'));			//false
            console.log(regexp.test('i'));			//true
            console.log(regexp.test('love'));		//true
            console.log(regexp.test('you'));		//true
            var regexp1=/^[ily]$/;
            console.log(regexp1.test('I'));			//false
            console.log(regexp1.test('i'));			//true
            console.log(regexp1.test('love'));		//false
            console.log(regexp1.test('l'));			//true
            console.log(regexp1.test('you'));		//false
            console.log(regexp1.test('y'));			//true
            var regexp=/^[a-z]$/;				//匹配字符串是否有a-z的一个字符
            console.log(regexp.test('i'));			//true
            console.log(regexp.test('l'));			//true
            console.log(regexp.test('y'));			//true
            console.log(regexp.test('A'));			//false
            console.log(regexp.test('1'));			//false
            console.log(regexp.test('you'));		//false
            var regexp3=/^[^a-z0-9]$/;			//匹配字符串中除a-z和0-9的一个其他字符
            console.log(regexp3.test('i'));			//false
            console.log(regexp3.test('+'));			//true
            console.log(regexp3.test('1'));			//false
            console.log(regexp3.test('A'));			//true
量词说明
*重复零次或者多次
+重复一次或者多次
重复零次或者一次
{n}重复n次
{n,}重复n次或者多次
{n,m}重复n次到m次
			var regexp=/^a*$/;					//匹配字符串中字符重复零次或者多次
            console.log(regexp.test(''));				//true
            console.log(regexp.test('a'));				//true
            console.log(regexp.test('aaa'));			//true
            console.log(regexp.test('baaa'));			//false
            console.log('-----------------------');
            var regexp1=/^a+$/;					//匹配字符串中字符重复一次或者多次
            console.log(regexp1.test(''));				//false
            console.log(regexp1.test('a'));				//true
            console.log(regexp1.test('aaa'));			//true
            console.log(regexp1.test('baaa'));			//false
            console.log('-----------------------');
            var regexp2=/^a?$/;					//匹配字符串中字符重复零次或者一次
            console.log(regexp2.test(''));				//true
            console.log(regexp2.test('a'));				//true
            console.log(regexp2.test('aaa'));			//false
            console.log(regexp2.test('baaa'));			//false
            console.log('-----------------------');
            var regexp3=/^a{3}$/;					//匹配字符串中字符重复n次
            console.log(regexp3.test(''));				//false
            console.log(regexp3.test('a'));				//false
            console.log(regexp3.test('aaa'));			//true
            console.log(regexp3.test('baaa'));			//false
            console.log('-----------------------');
            var regexp4=/^a{3,}$/;					//匹配字符串中字符重复n次或者多次
            console.log(regexp4.test(''));				//false
            console.log(regexp4.test('a'));				//false
            console.log(regexp4.test('aaa'));			//true
            console.log(regexp4.test('baaa'));			//false
            console.log('-----------------------');
            var regexp5=/^a{3,4}$/;					//匹配字符串中字符重复n次到m次
            console.log(regexp5.test(''));				//false
            console.log(regexp5.test('a'));				//false
            console.log(regexp5.test('aaa'));			//true
            console.log(regexp5.test('baaa'));			//false
            console.log(regexp5.test('aaaab'));			//false
括号说明
大括号{ }表示重复数量
中括号[ ]表示单选
小括号()表示优先级或者可以再次检索内容
预定类说明
\d匹配0-9的任意数字,相当于[0-9]
\D匹配0-9以外的字符,相当于[^0-9]
\w匹配字母、数字、下划线,相当于[0-9A-Za-z_]
\W匹配除了字母、数字、下划线的字符,相当于[^0-9A-Za-z_]
\s匹配一个空白符,包括空格、制表符、换页符、换行符和其他 Unicode 空格,相当于[\t\r\n\v\f]
\S匹配一个非空白符的字符,包括空格、制表符、换页符、换行符和其他 Unicode 空格,相当于[^\t\r\n\v\f]

6、正则表达式的替换

var str='你真的还好吗?你是真的吗?';		
console.log(str.replace(/你/,'我'));		//没使用全局变量,只替换了1个
console.log(str.replace(/你/g,'我'));		//使用全局变量,成功替换2个

在这里插入图片描述

7、正则表达式的参数

g——全局匹配
i——忽略大小写
s——匹配任何字符(包括终止符 ‘\n’),对 . 来说
gi——全局匹配+忽略大小写

案例见上图!

最后更加详细的内容可以参考https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp

本文只用于个人学习和记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值