定界符—— / /
常用的两种风格
JS风格正则
let re=new RegExp('\\d+,'g'');
perl风格正则
let re=/\d+/g;
常用三个函数(search、match、replace)
search—— 匹配字符并返回位置
<script>
let str='weqesdfaerq';
//alert(str.indexOf('a'));
let re=/a/; //字符串中是否有a
alert(str.search(re)); //结果返回 6
</script>
match——匹配字符并返回字符
<script>
let str='f34rrfsdf 45tsdgsrdg 5terg56456fdghdr675 dsf3434535645645645674567';
let re=/\d+/g; // \d 数字(转义) \d+ 多个数字
alert(str.match(re)); //返回34,45,5,56456,675,3434535645645645674567
</script>
replace——匹配字符并替换对应的字符
<script>
let str='asdfde we fsadfas weAr efAf';
alert(str.replace(/a/gi, '*')); //将所有的a和A替换成*
</script>
test——正则方法(用正则对象去校验,返回布尔值)
tips:**默认部分通过校验则成功,需要注意,可添加修饰符限制匹配
let re=/^[1-9]\d{4,11}$/; //匹配1-9开头后面以4个或者11个数字结尾的字符
let str="asdasdasd";
re.test(str); //返回flase
三大选项
i //忽略大小写
g //全局匹配,全部返回
转义
\——转义
\d 数字——相当于【0-9】
\s 空格
\w 字符——相当于【a-z0-9】
. ——任何字符
/a . {5,7}/——匹配a后面接着五个任何字符
\D 非数字——相当于【^0-9】
\S 非空格
\W非字符——相当于【^a-z0-9】
元字符
1、任何一个
/ a[abc]q/ 匹配abq或aaq或acq(只要不出现量词,都是匹配一个)
2、范围
/ [a-z] /i 匹配a-z或者A-Z任何一个
/ [0-9] / 匹配0-9数字
/ [a-z0-9]/ 匹配a-z 0-9
3、排除
[^a-z0-9] 排除a-z 0-9
量词——数量(如果不加量词,就是只匹配一个)
{ n } n个字符
/a{6}/ ——匹配六个a
/1\d{10}/——匹配1开头,后面接着是10个数字
{n,m}——n-m个字符
/\d{5,10}/——匹配五个数字或者十个数字
{n,}——最少n个字符
/\d{5,}/——最少十个数字
+ 一个或多个——相当于 {1,}
修饰符(开头、结尾)
^——行首、以什么开头
$——行尾、以什么结尾
?——
/^https?/——匹配http或者https开头
特殊注意的是
|——或
()——括号优先级