正则表达式
1.定义:由普通字符和元字符组成的带有特殊含义的字符串–设定某种规则字符串
2.作用:查找、匹配、替换
3.语法格式:var reg = /regExp/
元字符
1.{m}
:表示匹配m
个字符
2.{m,}
:表示匹配m
个或以上字符
3.{m,n}
:表示匹配m
个到n
个字符
4.+
:表示匹配1个或以上字符,等价于{1,}
5.*
:表示匹配0个或以上字符,等价于{0,}
6.?
:表示匹配0个或1个字符,等价于{0,1}
范围
1.[]
:表示匹配[]
内的任意一个字符 – 没有先后顺序;元字符除^,-
以外,在[]
内的其他元字符都使用普通含义
2.[start-end]
:表示匹配从start
开始到end
结束的任意一个字符
[0-9]:表示匹配任意一个数字
[a-z]:表示匹配任意一个小写字母
[A-Z]:表示匹配任意一个大写字母
元字符
1.^
:用在正则表达式的开头,表示匹配字符串开头(自身之后的第一个字符)
用在[]
中第一位,表示非
2.$
:用在正则式的末尾,表示匹配字符串结尾(自身之前的第一个字符)
3.\d
:匹配任意一个数字,等价于[0-9]
4.\D
:匹配任意一个非数字,等价于[^0-9]
5.\w
:匹配数字、字母、下划线中的任意一个字符
6.\W
:匹配任意一个非数字、字母、下划线字符
7.\b
:匹配单词边界(单词的开头和结尾) – 写在前面就匹配单词开头,写在末尾就匹配单词结尾;适用于在一个长字符串中匹配一个完整的单词开头和结尾
8..
:匹配除换行符和行结束符以外的所有任意一个字符
9.\
:将元字符转义为普通字符
10.()
:子正则式,表示一个完整的正则表达式
11.|
:用在()
中,表示或者
修饰符
1.i
:不区分大小写
2.g
:全局匹配
3.m
:匹配换行
拓展
1.\n
:用在正则式中,表示匹配第n
个子正则式的结果
2.$1-$99
:用在正则替换中(replace
),表示匹配第n
个子正则式的结果
2.str.search(regExp)
:在一个字符串中查找另一个字符串(可以用正则式表示)的位置
3.str.replace(old,new)
:查找str
中的字串old
替换成new
(替换一个)
4.str.replaceAll(old,new)
:替换所有str
中old
为new
5.贪婪模式:能匹配的尽量多
非贪婪模式:能匹配的尽量少,在量词的后面加上?
实例
1.限制input输入框只能输入大小写字母、数字、下划线的正则表达式:
> <a-input type="text" onkeyup="this.value=this.value.replace(/[^\w_]/g,'');">
2.限制input输入框只能输入数字和点的正则表达式:
<input type="text" oninput="value=value.replace(/[^\d.]/g,'')"><br>
3.限制input输入框只能输入中文英文的正则表达式:
<input type="text" oninput="this.value=this.value.replace(/[^\u4e00-\u9fa5^a-zA-Z]/g,'')"><br>