javascript正则表达式的详解

**

一、javascript正则表达式概述

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

二、javascript正则表达式特点

**
1、灵活,逻辑性和功能性强
2、可迅速简单的对字符串进行复杂控制
3、正则表达式里面不需要加引号,无论是数字还是字符串

**

三、javascript正则表达式的使用

**
**

1、利用RegExp对象创建

**

var regexp1=new RegExp(/111/);

**

2、利用字面量创建

**

var regexp2=/111/;

**

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

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

语法: regexObj.test(str)

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

**

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

**

边界符 说明
^ 匹配字符串的开头
$ 匹配字符串的结尾
| 或者,相当于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]

**

5、正则表达式的替换

**

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

**
在这里插入图片描述

6、正则表达式的参数

**

g——全局匹配
i——忽略大小写
gi——全局匹配+忽略大小写

案例见上图!

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

发布了24 篇原创文章 · 获赞 0 · 访问量 247

猜你喜欢

转载自blog.csdn.net/weixin_45969777/article/details/104899766