3.1 正则表达式对象的创建方式

字面量的方式   var patt = /匹配规则/修饰符;     / --> 边界的意思

new关键字     var patt = new RegExp(/匹配规则/,修饰符);

3.2 正则表达式对象中的方法

test()  检测指定字符串中是否含有某种匹配规则

exec()  检索字符串中指定的值。返回找到的值,并确定其位置

// 字面量的方式   var patt = /匹配规则/修饰符;     / --> 边界的意思
 //创建一个正则表达式,可以用来查看指定字符串中是否含有数字

 // 字面量的方式   var patt = /匹配规则/修饰符;     / --> 边界的意思
//创建一个正则表达式,可以用来查看指定字符串中是否含有数字
var patt = /[0-9]/; var str = "hello1234";
var str2 = "hello"; //test() 检测指定字符串中是否含有某种匹配规则 返回一个布尔值
var flag = patt.test(str);
console.log("flag:",flag);//flag: true flag = patt.test(str2);
console.log("flag:",flag);//flag: false // new关键字 var patt = new RegExp(/匹配规则/,修饰符);
var reg = new RegExp(/\d/);
console.log(reg.test(str));//true
console.log(reg.test(str2));//false
 <script>
var str = "I Love China!!We are Chinese!!" //exec() 检索字符串中指定的值。返回找到的值,并确定其位置
var patt = /[Ch]/;
console.log(patt.exec(str));//["C", index: 7, input: "I Love China!!We are Chinese!!", groups: undefined] var patt2 = /Ch/;
console.log(patt2.exec(str));//["Ch", index: 7, input: "I Love China!!We are Chinese!!", groups: undefined] //字符串中可以使用正则表达式的方法
// match() 查找找到一个或多个正则表达式的匹配
console.log(str.match("Ch"));//["Ch", index: 7, input: "I Love China!!We are Chinese!!", groups: undefined]
console.log(str.match(patt2));//"Ch", index: 7, input: "I Love China!!We are Chinese!!", groups: undefined]
console.log(str.match(patt));//["C", index: 7, input: "I Love China!!We are Chinese!!", groups: undefined] var patt3 = /Ch/g; //exec方法中修饰符g无效
console.log(patt3.exec(str));//["Ch", index: 7, input: "I Love China!!We are Chinese!!", groups: undefined]
console.log(str.match(patt3));//(2) ["Ch", "Ch"] // replace() 在字符串中查找匹配的子串, 并替换与正则表达式匹配的子串
var str = "Hello boys and girls!";
console.log(str.replace(" ",","));//Hello,boys and girls!
console.log(str.replace(/\s/,","));//Hello,boys and girls!
console.log(str.replace(/\s/g,","));//Hello,boys,and,girls! // search() 查找与正则表达式相匹配的值 返回第一次出现的索引
console.log(str.indexOf("o"));//
console.log(str.indexOf("o",5));//
console.log(str.search("o"));//4 只有一个参数
console.log(str.search(/o/));// // split() 把字符串分割为字符串数组
console.log(str.split(" "));//["Hello", "boys", "and", "girls!"]
console.log(str.split(/\s/));//["Hello", "boys", "and", "girls!"] 
</script>

3.4 修饰符

g  global,执行全局匹配

i  忽略大小写

m 执行多行匹配

 var str = "Hello 中国!!Hello 北京!!";
// 匹配中文:[\u4e00-\u9fa5]
// 是一个固定用法,中文只能在正则表达式里这样表示
var patt = /[\u4e00-\u9fa5]/g;
// g global,执行全局匹配
console.log(str.match(patt)); // i 忽略大小写
var patt2 = /[A-Z]/g;
console.log(str.match(patt2)); var patt3 = /[A-Z]/gi;
console.log(str.match(patt3)); // m 执行多行匹配
var str2 = "感谢大家光临,本人于\n10月1日上午在家观看国兵直播";
var patt4 = /^1/g; //^ 以指定规则开头
console.log(patt4.test(str2));//false var patt5 = /^1/gm;
console.log(patt5.test(str2));//true

3.5 匹配模式

[0-9]:查找任何从0至9的数字

[abc]:用于查找方括号之间的任何字符;方括号内的字符可以是任何字符或字符范围

[^abc]:查找任何不在方括号之间的字符  ^否定的意思

[a-z]:查找所有的小写字母

[A-Z]:查找所有的大写字母

[A-z]:查找所有的字母(大小写字母)

[0-9A-z]:包含所有的数字和字母(大小写字母)

例:var str="Is this all there is?";

var patt1=/[a-h]/g;

document.write(str.match(patt1));

结果: h,a,h,e,e

 // [A-z]:查找所有的字母(大小写字母)
// [0-9A-z]:包含所有的数字和字母(大小写字母) var str = "Hello@!~-+=123$%^&*()rrr[]{},.4`56_<>\/\\"; var patt = /[A-z]/g; console.log(str.match(patt));// ["H", "e", "l", "l", "o", "^", "r", "r", "r", "[", "]", "_", "\"] var patt2 = /[A-Za-z]/g; console.log(str.match(patt2));//(8) ["H", "e", "l", "l", "o", "r", "r", "r"] var str = "hello world";
console.log(str.match(/[hor]/g));//(4) ["h", "o", "o", "r"]
console.log(str.match(/[^hor]/g));//(7) ["e", "l", "l", " ", "w", "l", "d"]

3.6 元字符

元字符(Metacharacter):拥有特殊含义的字符

.(点):代表任何的字符(除了换行和行结束符)

\w:任何字母、数字、下划线

\W:任何非字母、数字、下划线

\d:任何数字

\D:任何非数字

\s:空白字符

\S:非空白字符

\b:查找单词边界

\B:查找非单词边界

作为了解

\o:查找NULL字符

\n:查找换行符

\f: 查找分页符

\r:查找回车符

\t:查找制表符

\v:查找垂直制表符

3.7 量词

^n:匹配开头为n的字符串

n$:匹配结尾为n的字符串

n+:匹配任何包含至少一个n的字符串

n{x}: 匹配任何包含x个n的字符串

n{x,}: 匹配至少包含x个n的字符串

n{x, y}:匹配包含x到y个n的字符串

n*:匹配任何包含0个或者多个n的字符串

n?:匹配任何包含0个或1个n的字符串

?=n:匹配任何其后紧接指定字符串n的字符串

?!n:匹配任何其后没有紧接字符串n的字符串

最新文章

  1. Android源码目录结构详解(转载)
  2. css知多少——选择器的优先级
  3. tomcat7+jdk1.8一键安装脚本
  4. ASP.NET 配置文件笔记
  5. Python导入cx_Oracle报错
  6. EF架构~通过EF6的DbCommand拦截器来实现数据库读写分离~续~添加事务机制
  7. ios-完成任务状态栏弹出提示view的小框架设计
  8. Struts – Wildcards example
  9. android 应用页面与数据申请逻辑剥离;
  10. 模拟I2C从机
  11. C语言数据结构----栈的定义及实现
  12. 西门子PLC学习笔记七-(位逻辑指令)
  13. NLP —— 图模型(零):EM算法简述及简单示例(三硬币模型)
  14. [补档]暑假集训D8总结
  15. Android Studio发布项目到jcenter,一行代码引入Module
  16. springboot由于mysql表类型导致的 setRollbackOnly() 事务不回滚
  17. struts2国际化全例 错误解决
  18. 序列化与反序列化之Kryo
  19. 【JS】【2】ajax传的参数为数组时,后台接收为null的处理
  20. KNN算法应用

热门文章

  1. List中的Map
  2. SQL 介绍和操作
  3. 求大师点化,寻求大文件(最大20G左右)上传方案
  4. 【BZOJ5092】分割序列(高维前缀和)
  5. BBED ORA-00600: internal error code, arguments: [16703], [1403], [20], [], [], [], [], [], [], [], [], []
  6. python 多进程读写文件
  7. 搭建python-flask开发环境
  8. Linux_DNS服务器
  9. Java ——日期时间 日期时间相关类 随机数 定义类属性时建议使用引用数据类型
  10. mooc-IDEA live template--006