学习正则表达式

今年的第一篇javascript文章就是这个正则表达式了,之前的文章是转载别人的,不算自己的东西,可以忽略不计,最近突然想把转载别人的东西 统统删掉,因为转载过的文章,我根本没有从中获得收获,纯粹是浪费时间,虽然说可以留着以后需要的时候来查看,可是这是一个非常不好的念头。今年我将不会 再转载别人的一篇文章了,如果觉得有用,我会把它收藏到云笔记上,推荐使用印象笔记,比网易的云笔记好了N倍,谁用谁知道。

如果看到好的博客,我将会把它订阅到feedly里面,有空的时候就会翻出来看看他们写过的新技术和研究,看国外的博客需要用心和花费一点时间才能有收获。看博客的时候最关键还是需要动手操作,自己写一遍代码,胜过你读几遍文章。

正则表达式花费了很多时间,主要是我看视频总是不自觉的眼困,以后就专门用7:30分到9:30分来学习javascript了,无论是看书还是看视频,打算买一本精通Javascript书,电子版看着挺不错的。

什么是正则表达式

正则表达式(regular expression)是一个描述字符模式的对象。使用正则表达式可以进行强大的模式匹配和文本检索与替换功能。

创建正则表达式

创建正则表达式和创建字符串相似,创建正则表达式提供了两种方法,一种采用new运算符,另一种采用字面量方式。

1.var box = new RegExp('box'); 第一个参数字符串

var box = new RegExp('box','ig'); 第二个参数可选模式修饰符

参数 含义
i 忽略大小写
g 全局匹配
m 多行匹配

2,var box = /Box/; 使用字面量方式的正则

var box = /Box/ig; 第二个斜杠后加模式修饰符

测试正则表达式

RegExp对象包含两个常用方法:test()和exec(),功能基本相似,用于测试字符串匹配。

test()方法在字符串中查找是否存在指定的正则表达式,并返回布尔值,如果存在则返回true,否则返回false。

exec()方法也用于在字符串中查找指定正则表达式,如果exec()执行成功,则返回包含该查找字符串的相关信息数据,否则返回null。(返回结果数组)

var pattern = new RegExp('Box','i');
var str = 'box';
alert(pattern.test(str)); //true
var pattern = /Box/i;
var str = 'box';
alert(pattern.test(str)); //true
var pattern = /Box/i;
var str = 'This is a box';
alert(pattern.test(str)); //true
var pattern = /Box/i;
var str = 'box';
alert(pattern.exec(str)); box
返回的是数组,有就返回数组的值,没有匹配到就返回null
var str ='ss';
alert(pattern.exec(str)); 没有匹配到返回null

使用字符串的正则表达式方法

string对象也提供了4个使用正则表达式的方法

方法 含义
match(pattern) 在一个字符串中寻找一个与正则表达式模式(pattern)的匹配/返回pattern中的字串或者null
replace(pattern,replacement) 用replacement替换pattern
search(pattern) 返回与正则表达式(pattern)的匹配
split(pattern) 返回字符串按指定pattern拆分的数组
var pattern = /Box/ig; //开启全局
var str = 'This is a Box';
alert(str.match(pattern)); //匹配所有
var pattern = /box/ig;
var str = 'This is a box! That is a Box too!';
alert(str.replace(pattern,'supperman'));
//This is a supperman! That is a supperman too';
var pattern= /!/ig;
alert(str.split(pattern)); //This is a supperman!, That is a supperman too !,

RegExp对象的属性

属性 意义
$1(到$9) 圆括号包围的字符串匹配
$_ 相当于input
$* 相当于multiline
$& 相当于lastMatch
$+ 相当于lastParen
$` 相当于leftContext
$' 相当于rightContext
constructor 指定创建对象原型的函数
global 全局搜索(使用g修饰符)
ignoreCase 不区分大小写搜索(使用i修饰符)
input

如果没有传递字符串,这就是要搜索的字符串

lastIndex 继续匹配的起始位置
lastMatch 最后一个匹配的字符串
lastParen 最后的圆括号包围的子字符串匹配
leftContext 最近一个匹配字符串左边的子字符串
multiline 是否跨多行搜索字符串
prototype 允许在所有对象中添加属性
rightContext 最近一个匹配字符串右边的子字符串
source 正则表达式模式本身

获取控制

正则表达式元字符是包含特殊含义的字符,他们有一些功能,可以控制匹配模式的方式,反斜杠后的元字符将失去其特殊含义。

元字符/元符号 匹配
\

在字面意义和特殊意义之间进行切换。例如\w表示\w的特殊意义而不是字面值w,但是\$表示不使用$的特殊意义而是使用$字符本身

^ 字符串的开头
$ 字符串的结尾
* 零次或者多次
+ 一次或者多次
? 零次或者一次
. 除换行符外的任何字符
\b 单词边界
\B 非单词边界
\d 0-9的任何数字(与[0-9]相同)
\D 任何非数字
\f 换页符
\n 换行符
\r 回车符
\s

任何一个空白字符(与[\f\n\r\t\v]相同)

\S

任何一个非空白字符
\t 制表符

\v

垂直制表符
\w 任何字母、数字以及下划线(与[a-zA-Z0-9_]相同)
\W 除数字、字母及下划线外的其他字符

\xnn

十六进制数字nn定义的ASCII字符
\onn 八进制数字nn定义的ASCII字符
\cX 控制字符X
[abcde] 与其中任何字符匹配的字符串
[^abcde] 字符补集,与其中任何字符都不匹配的字符集
[a-e] 与其中的字符范围匹配的字符集
[\b] 退格字符的字面量意义(不同于\b)
{n} 前面的字符正好出现n次
{n,} 前面的字符至少出现n次
{m,n} 前面的字符至少出现m次,最多n次
() 一个组,可以在后面引用它
x|y x或y

o+ 表示1个或者多个o

x? 表示0个或者1个x

x* 表示0个或者多个x

(xyz)+匹配至少一个(xyz)

x{m,n} 匹配至少m个,最多n个x

转载 javascript中的正则表达式总结 二的更多相关文章

  1. 转载 javascript中的正则表达式总结 一

    定义正则表达式的方法 定义正则表达式的方法有两种:构造函数定义和正则表达式直接量定义.例如: var reg1 = new RegExp('\d{5, 11}'); // 通过构造函数定义 var r ...

  2. JavaScript中的正则表达式(终结篇)

    JavaScript中的正则表达式(终结篇) 在之前的几篇文章中,我们了解了正则表达式的基本语法,但那些语法不是针对于某一个特定语言的.这篇博文我们将通过下面几个部分来了解正则表达式在JavaScri ...

  3. C++、Java、JavaScript中的正则表达式

    C++(VS2013编译器):http://msdn.microsoft.com/zh-cn/library/bb982727.aspx#grammarsummary Java:            ...

  4. Javascript中的正则表达式

    Javascript中的正则表达式 刚开始接触正则表达式的时候,觉得这是个很死板的东西(没办法,计算机不能像人眼一样能很快的辨认出我们需要的结果,它需要一定的规则来对它进行限制),了解的越多,发现这个 ...

  5. 浅谈JavaScript中的正则表达式

    引言 对于正则表达式我想作为程序员肯定使用过它,那天书般的表达方式,我用一次就记住它了.这篇博客先介绍一些正则表达式的内容,然后介绍JavaScript中对正则表达式特有的改进.下面开始介绍正则表达式 ...

  6. 浅谈JavaScript中的正则表达式(适用初学者观看)

    浅谈JavaScript中的正则表达式 1.什么是正则表达式(RegExp)? 官方定义: 正则表达式是一种特殊的字符串模式,用于匹配一组字符串,就好比用模具做产品,而正则就是这个模具,定义一种规则去 ...

  7. 精通 JavaScript中的正则表达式

    精通 JS正则表达式 (精通?标题党 ) 正则表达式可以: •测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式.这称为数据有效性验证  ...

  8. JavaScript中的正则表达式详解

    摘要:javascript中的正则表达式作为相当重要的知识,本文将介绍正则表达式的相关知识和用法. 正则表达式(Regular Expression)是一门简单语言的语法规范,是强大.便捷.高效的文本 ...

  9. javascript中的正则表达式学习

    一.前言 关于正则表达式自身的语法这里不做过多介绍(详情可参见http://www.php100.com/manual/unze.html),这里仅仅解释javascript中和正则表达式相关的几个方 ...

随机推荐

  1. 高性能Web服务端 PHP vs Node.js vs Nginx-Lua 的对比分析

    1. ngx_lua nodejs php 比较 我在研究一阵子ngx_lua之后发现lua语法和js真的很像,同时ngx_lua模型也是单线程的异步的事件驱动的,工作原理和nodejs相同,代码甚至 ...

  2. 189. Rotate Array -- 将数组前一半移到后一半

    Rotate an array of n elements to the right by k steps. For example, with n = 7 and k = 3, the array ...

  3. Matlab boxplot for Multiple Groups(多组数据的箱线图)

    在画之前首先介绍一下Matlab boxplot,下面这段说明内容来自http://www.plob.org/2012/06/10/2153.html   由于matlab具有强大的计算功能,用其统计 ...

  4. 减少HTTP请求之将图片转成二进制并生成Base64编码,可以在网页中通过url查看图片(大型网站优化技术)

    在网站开发过程中,对于页面的加载效率一般都想尽办法求快.那么,怎么让才能更快呢?减少页面请求 是一个优化页面加载速度很好的方法.上一篇博文我们讲解了 “利用将小图标合成一张背景图来减少HTTP请求”, ...

  5. POC测试——原型验证,降低风险,IT系统销售工作之一

    POC测试,即Proof of Concept,是业界流行的针对客户具体应用的验证性测试,根据用户对采用系统提出的性能要求和扩展需求的指标,在选用服务器上进行真实数据的运行,对承载用户数据量和运行时间 ...

  6. 自定义Encoder/Decoder进行对象传递

    转载:http://blog.csdn.net/top_code/article/details/50901623 在上一篇文章中,我们使用Netty4本身自带的ObjectDecoder,Objec ...

  7. Solr 4.3.0 配置Data import handler时出错

    启动solr的时候,居然出现了如下的错误: org.apache.solr.common.SolrException: RequestHandler init failure        at or ...

  8. 【模板下载】innosetup 制作.net安装包的模板

    NetworkComms网络通信框架序言 这个模板是在博客园和CodeProject上的代码修改而成的,感谢原作者 模板是2个 innosetup 制作.net 2.0 安装包的模板 innosetu ...

  9. FusionCharts ajax 调用方式

    方式一:setJSONUrl function initChart() {                    var myChart = new FusionCharts("Fusion ...

  10. Could not find artifact com.sun:tools:jar:1.5.0

    问题: Failed to execute goal on project petroleum: Could not resolve dependencies for project petroleu ...