当前位置:   article > 正文

JS正则表达式

JS正则表达式

1. 构建正则表达式

  1. 字面量创建

    var reg = /正则表达式/修饰符;
  2. 构造函数创建

    var reg = new RegExp('正则表达式','修饰符')

修饰符

​ i: ignoreCase, 匹配忽视大小写

​ m: multiline , 多行匹配

​ g: global , 全局匹配

2. 正则表达式调用(实例方法)

1. exec

​ 匹配字符串和正则表达式的方法,

​ 匹配成功:

​ 返回一个数组 [匹配内容,index:匹配的起始位置,input:要匹配的字符串, group:undefined]

​ 匹配失败:

​ 返回null

  1. var str = 'hello world hello';
  2. var reg = /hello/g;
  3. console.log(reg.exec(str)) //返回[ 'hello', index: 0, input: 'hello world hello', groups: undefined ]

2. test

​ 测试待检测的字符串是或否能匹配到,匹配到返回true,否则返回false

  1. var str = 'hello world hello';
  2. var reg = /hello/;//匹配hello
  3. console.log(str.test(str))//返回true

3. lastIndex

​ 没设置全局匹配,返回值都为0;

​ 设置全局匹配后,匹配到对于字符lastIndex指向改字符的结束位置,在执行exec返回null时lastIndex归零。

  1. var str = 'a a a'
  2. var reg1 = /a/;
  3. var reg2 = /a/g;
  4. console.log(reg1.lastIndex); // 0
  5. console.log(reg1.exec(str)); // 返回第一个a
  6. console.log(reg1.lastIndex); // 0
  7. console.log(reg2.lastIndex); // 0
  8. console.log(reg2.exec(str)); // 返回第一个a
  9. console.log(reg2.lastIndex); // 1
  10. console.log(reg2.lastIndex); // 1
  11. console.log(reg2.exec(str)); // 返回第二个a
  12. console.log(reg2.lastIndex); // 3
  13. console.log(reg2.lastIndex); // 3
  14. console.log(reg2.exec(str)); // 返回第三个a
  15. console.log(reg2.lastIndex); // 5
  16. console.log(reg2.exec(str)); //返回 null
  17. console.log(reg2.lastIndex); // 0
  18. console.log(reg2.exec(str)); // 返回第一个a

3. 正则表达式元字符

字符匹配
字母和数字字符自身
\oNull字符
\t制表符
\n换行符
\v垂直制表符
\f换页符
\r回车符
字符类含义
.匹配除换行符\n和回车符之外的任何单个字符,等效于**[^\n\r]**
\d匹配一个数字字符,等效于[0-9]
\D[^0-9]
\w匹配包括下划线的任何单个字符,包括AZ,az,0~9和下划线**""**,等效于[a-zA-Z0-9]
\W[^a-zA-Z0-9_]
\s匹配任何Unicode空白字符,包括空格、制表符、换页符等,等效于[\f\t\n\r]
\S[^\f\t\n\r]

1. []的用法

​ 用法:匹配[]之中的某一个字符。

​ 例如:[0-9] 查找0-9之中任意一个字符,[abc]匹配a,b,c之中一个字符

  1. var str = 'ab';
  2. var reg = /[abc]/;//匹配abc任意一个字符
  3. var reg1 = /abc/;//匹配abc
  4. console.log(reg.test(str));//返回true
  5. console.log(reg1.test(str));//返回false

2. ^符号的使用

  1. 反义字符

    例如: [ ^abc]匹配除了abc之外的字符

    1. var str = 'ab1';
    2. var str2 = 'abc';
    3. var reg1 = /[^abc]/;//匹配abc之外的字符
    4. console.log(reg.test(str));//返回true
    5. console.log(reg1.test(str2));//返回false
  2. 边界符

    ^表示匹配开始的字符

    1. var str = 'abc';
    2. var str1 = '1abc';
    3. var reg = /^abc/;//匹配以abc开头的字符
    4. console.log(reg.test(str));//返回true
    5. console.log(reg1.test(str2));//返回false

       3. $符号的使用

​          边界符

​           $表示匹配结束位置的字符

  1. var str = 'abc';
  2. var str1 = '1abc';
  3. var reg = /abc$/;//匹配以abc结尾的字符
  4. console.log(reg.test(str));//返回true
  5. console.log(reg1.test(str2));//返回true

^和$共同使用(精确匹配)只有和匹配的字符完全相同才匹配成功

  1. var str = 'abc';
  2. var str1 = '1abc';
  3. var reg = /^abc$/;//匹配以abc结尾的字符
  4. console.log(reg.test(str));//返回true
  5. console.log(reg1.test(str2));//返回true

4. 字符匹配出现次数

字符含义
*>=0次
+≥1 次
0或1次
{n}n 次
{n,}≥n 次
{n,m}n到m 次
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/781628
推荐阅读