ES5基础之正则表达式02:范围类、预定义类和边界字符
1.范围类
//元字符
/*
* 正则表达式由两种基本字符类型组成
* 1.原义文本字符:例如123abc
* 2.元字符:元字符是在正则表达式中有特殊含义的非字母字符
*/
//常见特殊符号:. * ? $ ^ | \ ( ) { } [ ]
/* 1.字符类
* 我们可以使用元字符[]来构建一个简单的类
* 所谓类是指符合某些特性的对象,一个泛指,而不是特值某些字符
* 表达式[abc]把字母a字母b字符c归为一类,表达式可以匹配这类的字符,而不是匹配abc
*/
var string = 'a1b2c3';
string = string.replace(/[abc]/g, 'X');
console.log(string);
// 在 [] 前面加 ^ 表示取反,比如:var reg = /[^abc]/g 表示匹配非abc;
var string = 'a1b2c3';
string = string.replace(/[^abc]/g, 'X');
console.log(string);
/* 2.范围类
* 比如:使用字符类匹配数字则为[0123456789] 这样比较麻烦
* 正则表达式为我们提供了范围类
* 我们可以使用 [a-z] 来连接两个字符表示从a-z的任意字符
* [0-9]表示任意数字
* 在 [] 组成的类内部是可以连写的 [a-zA-Z0-9];
*/
var string = 'a1b2c3ccee654ADAD';
string = string.replace(/[a-zA-Z0-9]/g, 'X');
console.log(string);//全部都为X
//注意:- 在 []内部表示范围的意思,如果要匹配 - ,可以直接加载后面
var string = 'a1b-2c3c-cee654A-DAD';
string = string.replace(/[a-zA-Z0-9-]/g, 'X');
console.log(string);//全部都为X
2.预定义类
/* 3.预定义类
* 正则表达式提供预定义类来匹配常见的字符类
* 字符-等价类-含义
* . <=> [^\r\n] 除了回车换行之外的所有字符
* \d <=> [0-9] 数字字符 digital
* \D <=> [^0-9] 非数字字符 digital
* \s <=> [\t\n\x0B\f\r] 空白字符 space
* \S <=> [^\t\n\x0B\f\r] 非空白字符 space
* \w <=> [a-zA-Z0-9_] 字母数字下划线 word
* \W <=> 非字母数字下划线 word
*/ //实例1:匹配一个 ab + 数字 + 任意字符 的字符串
// ab\d.
3.边界字符
/* 4.边界字符
* 正则表达式提供了几个常用边界匹配字符
* 字符-含义
* ^ - 以 xxx 开始
* $ - 以 xxx 结束
* \b - 单词边界
* \B - 非单词边界
*/ //关于单词边界的使用:需要单词边界--双边
var string = 'this is a boy, this is a girl';
string = string.replace(/\bis\b/g, 'my')
console.log(string); //关于单词边界的使用:不需要单词边界--单边
var string = 'this is a boy, this is a girl';
string = string.replace(/\Bis/g, 'my')
console.log(string); //关于单词边界的使用:不需要单词边界--双边
var string = 'this is a boy, this is a girl';
string = string.replace(/\Bis/g, 'my')
console.log(string); //关于单词边界的使用:^
var string = '@123@abc@';
string = string.replace(/@./g, 'Q');
console.log(string); var string = '@123@abc@';
string = string.replace(/^@./g, 'Q');
console.log(string); //关于单词边界的使用:$
var string = '@123@abc@';
string = string.replace(/.@/g, 'Q');
console.log(string); //关于单词边界的使用:$
var string = '@123@abc@';
string = string.replace(/.@$/g, 'Q');
console.log(string);
ES5基础之正则表达式02:范围类、预定义类和边界字符的更多相关文章
- JS正则表达式从入门到入土(4)—— 预定义类与边界
预定义类 正则表达式提供预定义类来匹配常见的字符类 字符 等价类 含义 . [^\r\n] 除了回车符和换行符以外的所有字符 \d [0-9] 数字字符 \D [^0-9] 非数字字符 \s [\t\ ...
- PHP数组——数组正则表达式、数组、预定义数组
正则表达式 1.替换 $s = "hello5world"; $s = preg_replace("/\d/","#",$s); echo ...
- PHP数组(数组正则表达式、数组、预定义数组)
正则表达式 1.替换 $s = "hello5world"; $s = preg_replace("/\d/","#",$s); echo ...
- ES5基础之正则表达式01:初次见面
1.正则初次见面 测试地址:https://regexper.com 第一个正则:匹配 2006-10-11 或 2006/10/11 var reg = /^\d{4}[-/]\d{2}[-/]\d ...
- shell编程基础(五): 正则表达式及其使用
正则表达式 1.前情提要 以前我们用grep在一个文件中找出包含某些字符串的行,比如在头文件中找出一个宏定义.其实grep还可以找出符合某个模式(Pattern)的一类字符串.例如找出所有符合xxxx ...
- 【Java基础】正则表达式
目录 正则表达式 什么正则表达式 普通字符 预定义字符 特殊字符 数量限定字符 定位字符 选择符和分组 反向引用 预搜索 运算符的优先级 常用正则 附录 正则表达式 本文的大部分内容转载自正则表达式从 ...
- Java 基础 常用API ( 正则表达式,Date类,DateFormat类,Calendar类 )
正则表达式 正则表达式的概念 正则表达式(英语:Regular Expression,在代码中常简写为regex). 正则表达式是一个字符串,使用单个字符串来描述.用来定义匹配规则,匹配一系列符合某个 ...
- 【代码笔记】Java常识性基础补充(三)——Java的API及Object类、正则表达式、getTime()方法、DateFormat类、Calendar类
1.0 Java 的API(API: Application(应用) Programming(程序) Interface(接口)) 2.0 Java API就是JDK中提供给我们使用的类,这些类将底层 ...
- 正则表达式、Calendar类、SimpleDateFormat类、Date类、BigDecimal类、BigInteger类、System类、Random类、Math类(Java基础知识十四)
1.正则表达式的概述和简单使用 * A:正则表达式(一个字符串,是规则) * 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串.其实就是一种规则.有自己特殊的应用. * B: ...
随机推荐
- 推荐8个实现 SVG 动画的 JavaScript 库
SVG 是一种分辨率无关的图形(矢量图形).这意味着它在任何类型的屏幕都不会遭受任何质量损失.除此之外,你可以让 SVG 灵活现一些动画效果.这篇文章就给大家推荐8个实现 SVG 动画的 JavaSc ...
- c#使用json接口
前些日子将项目由使用数据库改版为使用接口,由于接口返回的xml中多了一些附加信息,导致xml转化后的DataTable无法储存在MemCache中.这时可以将xml序列化为其对应的类,当然由于当时对x ...
- c#的那些有效性判断
在开发中合理的对象有效性判断是程序健壮性的重要保障,也有利于提高程序的执行效率.本人简单总结了几个需要判断对象是否为空的例子,分享如下: 一.集合对象中可以包含空对象,遍历集合对象时要同时判断集合中的 ...
- 滚动条美化实践(原生js,iscroll,nicescroll)
近期需要改造项目中的滚动条,使原滚动条在三大浏览器下表现相同,分享一下自己的改造经历: 项目中的滚动条分布在网页的各个小窗口中,使用的是-webkit-scrollbar制作,在-webkit内核的浏 ...
- 服务器重启后导致访问ArcServer地图服务须登录
问题状况: 重启服务器后,在访问网站的地图服务时会提示登录,输入各种密码账号都不好用 解决方法: 通过进入[服务管理器],找到ArcGISServer的服务,重新启动该服务就可以.
- 使用NuGet助您玩转代码生成数据————Entity Framework 之 Code First
[前言] 如果是Code First老鸟或者对Entity Framework不感兴趣,就不用浪费时间往下看了. 记得09年第一次接触ORM————Linq2Sql,从此对她的爱便一发不可收拾,一年后 ...
- MongoDB-常见问题
前言 MongoDB数据库的版本为3.0.7.记录在使用MongoDB数据库时遇到的各种问题,目前是遇到一个整理一个,没有进行分类,等整理较多的时候,进行分类整理一下. 1.使用可视化工 ...
- curl操作CouchDB
couchdb 服务器地址: 127.0.0.1 端口:5984 添加数据库 连接到couchdb curl -X GET http://127.0.0.1:5984 {"couchdb&q ...
- 如何创建一个GitLab Web Hooks?
Git Hooks Git 能在特定的重要动作发生时触发自定义的脚本. 这些脚本都被存储在 Git 目录下的 hooks 子目录中(.git/hooks).当 git init 初始化一个仓库时,Gi ...
- 从人类社会的角度看OO(独家视角)
引言 在OO的工作中,我们一定会涉及到类,抽象类和接口.那么类和抽象类以及接口到底扮演的什么角色? 本文主要是从人类社会的角度阐述类与抽象类以及接口的"社会"关系,从而让我们抛弃书 ...