javascript正则表达式的详解

阳光穿透心脏的1/2处 2023-07-15 09:22 155阅读 0赞

一、javascript正则表达式概述

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

二、javascript正则表达式特点

1、灵活,逻辑性和功能性强
2、可迅速简单的对字符串进行复杂控制

三、javascript正则表达式的使用

1、利用RegExp对象创建

  1. var regexp1=new RegExp('111');

2、利用字面量创建

  1. var regexp2=/111/;

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

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

语法: regexObj.test(str)

  1. var regexp1=/111/;
  2. regexp1.test(111); //true

4、测试正则表达式—exec()

用于检测字符串是否符合该规则,如果返回一个带有符合正则规则的对象,如果没有就返回null,参数是待检测字符串

语法: regexObj.exec(str)

  1. var regexp1=/111/;
  2. regexp1.exec(111); //返回一个对象,里面有个属性值为111的字符串

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


























边界符 说明
^ 匹配字符串的开头
$ 匹配字符串的结尾
| 或者,相当于or关键字
. 匹配任意单个字符,但是行结束符除外:\n \r
  1. var regexp=/abc/; //匹配字符串是否有abc字符串
  2. console.log(regexp.test('abc')); //true
  3. console.log(regexp.test('abdc')); //false
  4. console.log(regexp.test('abcd')); //true
  5. console.log(regexp.test('aabcd')); //true
  6. console.log('-----------------------');
  7. var regexp1=/^abc/; //匹配字符串是否以abc开头
  8. console.log(regexp1.test('abc')); //true
  9. console.log(regexp1.test('abcd')); //true
  10. console.log(regexp1.test('aabcd')); //false
  11. console.log('-----------------------');
  12. var regexp2=/abc$/; //匹配字符串是否以abc结尾
  13. console.log(regexp2.test('abc')); //true
  14. console.log(regexp2.test('abcd')); //false
  15. console.log(regexp2.test('aabcd')); //false
  16. console.log('-----------------------');
  17. var regexp3=/^abc$/; //匹配字符串是否以abc开头和结尾(匹配是否完全一样)
  18. console.log(regexp3.test('abc')); //true
  19. console.log(regexp3.test('abcd')); //false
  20. console.log(regexp3.test('aabcd')); //false





















字符类 说明
[ ] 匹配字符串中的某一个字符即可
[ a-z ] 匹配字符串中a-z的一个字符
[ ^a-z] 匹配字符串中除a-z的一个其他字符
  1. var regexp=/[ily]/; //匹配字符串是否有abc中某个字符
  2. console.log(regexp.test('I')); //false
  3. console.log(regexp.test('i')); //true
  4. console.log(regexp.test('love')); //true
  5. console.log(regexp.test('you')); //true
  6. var regexp1=/^[ily]$/;
  7. console.log(regexp1.test('I')); //false
  8. console.log(regexp1.test('i')); //true
  9. console.log(regexp1.test('love')); //false
  10. console.log(regexp1.test('l')); //true
  11. console.log(regexp1.test('you')); //false
  12. console.log(regexp1.test('y')); //true
  13. var regexp=/^[a-z]$/; //匹配字符串是否有a-z的一个字符
  14. console.log(regexp.test('i')); //true
  15. console.log(regexp.test('l')); //true
  16. console.log(regexp.test('y')); //true
  17. console.log(regexp.test('A')); //false
  18. console.log(regexp.test('1')); //false
  19. console.log(regexp.test('you')); //false
  20. var regexp3=/^[^a-z0-9]$/; //匹配字符串中除a-z和0-9的一个其他字符
  21. console.log(regexp3.test('i')); //false
  22. console.log(regexp3.test('+')); //true
  23. console.log(regexp3.test('1')); //false
  24. console.log(regexp3.test('A')); //true

































量词 说明
* 重复零次或者多次
+ 重复一次或者多次
重复零次或者一次
{n} 重复n次
{n,} 重复n次或者多次
{n,m} 重复n次到m次
  1. var regexp=/^a*$/; //匹配字符串中字符重复零次或者多次
  2. console.log(regexp.test('')); //true
  3. console.log(regexp.test('a')); //true
  4. console.log(regexp.test('aaa')); //true
  5. console.log(regexp.test('baaa')); //false
  6. console.log('-----------------------');
  7. var regexp1=/^a+$/; //匹配字符串中字符重复一次或者多次
  8. console.log(regexp1.test('')); //false
  9. console.log(regexp1.test('a')); //true
  10. console.log(regexp1.test('aaa')); //true
  11. console.log(regexp1.test('baaa')); //false
  12. console.log('-----------------------');
  13. var regexp2=/^a?$/; //匹配字符串中字符重复零次或者一次
  14. console.log(regexp2.test('')); //true
  15. console.log(regexp2.test('a')); //true
  16. console.log(regexp2.test('aaa')); //false
  17. console.log(regexp2.test('baaa')); //false
  18. console.log('-----------------------');
  19. var regexp3=/^a{3}$/; //匹配字符串中字符重复n次
  20. console.log(regexp3.test('')); //false
  21. console.log(regexp3.test('a')); //false
  22. console.log(regexp3.test('aaa')); //true
  23. console.log(regexp3.test('baaa')); //false
  24. console.log('-----------------------');
  25. var regexp4=/^a{3,}$/; //匹配字符串中字符重复n次或者多次
  26. console.log(regexp4.test('')); //false
  27. console.log(regexp4.test('a')); //false
  28. console.log(regexp4.test('aaa')); //true
  29. console.log(regexp4.test('baaa')); //false
  30. console.log('-----------------------');
  31. var regexp5=/^a{3,4}$/; //匹配字符串中字符重复n次到m次
  32. console.log(regexp5.test('')); //false
  33. console.log(regexp5.test('a')); //false
  34. console.log(regexp5.test('aaa')); //true
  35. console.log(regexp5.test('baaa')); //false
  36. 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]

6、正则表达式的替换

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

在这里插入图片描述

7、正则表达式的参数

g——全局匹配
i——忽略大小写
s——匹配任何字符(包括终止符 ‘\n’),对 . 来说
gi——全局匹配+忽略大小写

案例见上图!

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

本文只用于个人学习和记录

发表评论

表情:
评论列表 (有 0 条评论,155人围观)

还没有评论,来说两句吧...

相关阅读

    相关 js表达使用详解

    本篇文章是对js中正则表达式的使用进行了详细的分析介绍,需要的朋友可以参考下 js中的正则表达式比起C\中的正则表达式要弱很多,但基本够用了 1定义正则表达式 2关于