1、什么是正则表达式?
(1)是一种描述字符串组成结构的语法规则
(2)是用于匹配字符串中字符组合的模式
(3)同时正则表达式也是对象
2、特点
(1)非常灵活
(2)逻辑性和功能性非常强。
(3)以非常简单的方式达到字符串的控制。
3、创建正则表达式:
(1)使用字面量
var 变量 = /表达式/
(2)使用RegExp构造函数
var 变量名 =RegExp(/表达式/)或
var 变量名 = new RegExp(/表达式/)
4、正则表达式的使用
(1)test()方法:返回Boolean值。true表示符合正则的规则,false表示不符合正则规则
正则对象.test(被验证的字符串)
(2)模式修饰符:/表达式/[switch]
switch:是模式修饰字符,是可选的,通过它可以对正则进行进一步的设置
g:全局匹配
i:忽略大小写
(3):边界符
^:表示匹配行首的文本(表示以谁开头)
$:表示匹配行尾的文本(表示以谁结尾)
(4)预定义字符:
. : 除了'n'之外的任意单个字符
\d : 表示0~9之间的任意数字。等价于[ 0-9 ]
\D : 等价于[0-9]ID:表示匹配O~9以外的字符。等价于[ ^0-9 ]
\w:表示匹配任意字母、数字和下划线。等价于[ a-zA-Z0-9 ]
\W:除所有字母、数字和下划线以外的字符,相当于[ ^a-zA-ZO-9 ]
\b:单词分界符
\s :匹配空格(包括换行符、制表符、空格符等),相当于[ltirinlvif]
match(正则表达式)方法:是String对象的方法,用来截取符合正则表达式规则的子串,返回值是数组
强调;转义字符 ‘ \ ’,若要输出反斜杠,要使用连续两个 ' \ '
(5)字符范围实例
[ cat ]:匹配字符集合中的任意一个字符c、a、t
[ ^cat ] : 匹配除c、a、t以外的字符
[ A-Z ] :匹配字母A~Z范围内的字符
[ \u4e00-\u9fa5] : 匹配任意一个中文字符
字符组合:如果允许用户输入英文字母(不区分大小写)、数字、短横线-、下划线_的正则情况。
var rg= /h[a-zA-ZO-9_-]$/;
(6)量词符
{m,n}:表示{}之前的字符可以出现m~n次
{n}:表示{}之前的字符可以出现n次
课堂练习:验证西安的座机号码,定义正则表达式测试用户输入的座机号是否正确
<style> .ok{ color: green; } .fail{ color: red; } </style> </head> <body> 请输入座机号码:<input type="text" id="userName"><span id="msg"></span> <script> let reg = /^(029)[0-9]{8}/ let uname = document.querySelector('#userName') uname.onblur = function(){ let span = document.querySelector('#msg') if(reg.test(this.value)){ span.classList.remove('fail') span.innerHTML= '输入正确' span.classList.add('ok') }else{ span.classList.remove('ok') span.innerHTML= '输入错误' span.classList.add('fail') } }
</script> </body> </html> |