正则表达式RegExp对象
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的字符串
最新文章
- Android源码目录结构详解(转载)
- css知多少——选择器的优先级
- tomcat7+jdk1.8一键安装脚本
- ASP.NET 配置文件笔记
- Python导入cx_Oracle报错
- EF架构~通过EF6的DbCommand拦截器来实现数据库读写分离~续~添加事务机制
- ios-完成任务状态栏弹出提示view的小框架设计
- Struts – Wildcards example
- android 应用页面与数据申请逻辑剥离;
- 模拟I2C从机
- C语言数据结构----栈的定义及实现
- 西门子PLC学习笔记七-(位逻辑指令)
- NLP —— 图模型(零):EM算法简述及简单示例(三硬币模型)
- [补档]暑假集训D8总结
- Android Studio发布项目到jcenter,一行代码引入Module
- springboot由于mysql表类型导致的 setRollbackOnly() 事务不回滚
- struts2国际化全例 错误解决
- 序列化与反序列化之Kryo
- 【JS】【2】ajax传的参数为数组时,后台接收为null的处理
- KNN算法应用
热门文章
- List中的Map
- SQL 介绍和操作
- 求大师点化,寻求大文件(最大20G左右)上传方案
- 【BZOJ5092】分割序列(高维前缀和)
- BBED ORA-00600: internal error code, arguments: [16703], [1403], [20], [], [], [], [], [], [], [], [], []
- python 多进程读写文件
- 搭建python-flask开发环境
- Linux_DNS服务器
- Java ——日期时间 日期时间相关类 随机数 定义类属性时建议使用引用数据类型
- mooc-IDEA live template--006