资讯专栏INFORMATION COLUMN

20170605-正则表达式相关

Jenny_Tong / 705人阅读

摘要:在不设置全局标志的情况下,在同一个字符创上多次调用将始终返回第一个匹配项的信息。

字面量定义正则表达式

ECMAScript通过RegExp类型来支持正则表达式

var expression = / pattern / flags:模式(pattern)部分可以是任何简单或复杂的正则表达式,标志(flag)部分用来标明正则表达式的匹配模式

正则表达式的匹配模式支持下列3个标志:

g:表示全局模式,即模式会被应用于所有字符串,而非在发现第一个匹配项时立即停止

i:表示不区分大小写模式

m:表示多行模式,即在到达一行文本末尾时还会继续查找下一行中是否存在与模式匹配的项

正则表达式:

d: 等价于[0-9],表示数字字符

w: 等价于[a-zA-Z_0-9],表示字母,数字,下划线

s: 等价于[ x0Bf ],表示空白符

[a-zA-Z0-9]: 表示大小写字母和数字

: 表示单词边界,单词边界就是单词和符号之间的边界,这里的单词可以是中文字符,英文字符,数字;符号可以是中文符号,英文符号,空格,制表符,换行

.: 等价于[^ ],表示除了回车和换行符之外的所有字符

*: 表示出现零次或多次

+: 表示出现一次或多次

?: 表示出现零次或一次

x{3}: 表示x出现3次

^: 表示以XXX开头

$: 表示以XXX结尾

使用构造函数创建正则表达式

var pattern = new RegExp("[bc]at", "i");

RegExp构造函数接受两个参数:一个是要匹配的 字符串模式(注意不是字面量),两一个是可选的标志字符串

常用方法:

pattern.exec(str):

对于exec()方法而言,即使在模式中设置了全局标志(g),它每次也只会返回一个匹配项。在不设置全局标志的情况下,在同一个字符创上多次调用exec()将始终返回第一个匹配项的信息。而在设置全局标志的情况下,每次调用exec()则会在字符串中继续查找新匹配项。

exec()方法返回一个对象,拥有两个属性:index和input,index表示匹配项在字符串中的位置,input表示应用正则表达式的字符串

pattern.test(str):

在模式与该参数匹配的情况下返回true,否则返回false

String类型也可以利用正则表达式来实现相应的功能:

match方法:

var text = "cat, bat, sat, fat";

var pattern = /.at/;
text.match(pattern);  // 无论执行多少次,都只会返回 ["cat"]

var pattern = /.at/g;
text.match(pattern);  // 返回 ["cat", "bat", "sat", "fat"]

replace方法:

var text = "cat, bat, sat, fat";

var pattern = /.at/;
text.replace(pattern, "skt");  // 无论执行多少次,都只会返回 "skt, bat, sat, fat"

var pattern = /.at/g;
text.replace(pattern, "skt");  // 无论执行多少次,都只会返回 "skt, skt, skt, skt"

search方法:返回字符串第一个匹配项的索引

var text = "cat, bat, sat, fat";

var pattern = /.at/;
text.search(pattern);  // 无论执行多少次,都只会返回 0

var pattern = /.at/g;
text.search(pattern);  // 无论执行多少次,都只会返回 0

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/83349.html

相关文章

  • 20170605-String相关方法

    摘要:首先来看一个例子我们知道基本数据类型有还有一种复杂数据类型基本类型不是对象从逻辑上讲是不应该有方法的其实为了让我们能够对进行相关操作后台已经自动完成了一系列的处理当第二行代码访问时访问过程处于一种读取模式也就是从内存中读取这个字符串的值而在 首先来看一个例子 var s1 = some text; var s2 = s1.substring(2); var s3 = new Strin...

    rollback 评论0 收藏0
  • 20170605-Array相关方法

    摘要:方法将所有在过滤函数中返回的数组元素放进一个新数组中并返回。方法从左到右为每个数组元素执行一次回调函数,并把上次回调函数的返回值放在一个暂存器中传给下次回调函数,并返回最后一次回调函数的返回值。 创建数组 var array = new Array(); var array = new Array(10); var array = new Array(red,blue,green);...

    Chaz 评论0 收藏0
  • 20170605-函数的arguments

    摘要:是一个类数组对象,包含着传入函数中的所有参数。虽然的主要用途是保存函数参数,但是这个对象还有一个名叫的属性,该属性是一个指针,指明拥有这个对象的函数。 arguments arguments是一个类数组对象,包含着传入函数中的所有参数。虽然arguments的主要用途是保存函数参数,但是这个对象还有一个名叫callee的属性,该属性是一个指针,指明拥有这个arguments对象的函数。...

    wangxinarhat 评论0 收藏0
  • 20170605-内存泄漏和垃圾回收

    摘要:引用计数另一种不太常见的垃圾回收策略是引用计数。引用计数的含义是跟踪记录每个值被引用的次数。在采用引用计数的策略中,由于函数执行之后,这两个对象都离开了作用域,函数执行完成之后,和还将会继续存在,因为他们的引用次数永远不会是。 垃圾回收的必要性 由于字符串、对象和数组没有固定大小,所以当他们的大小已知时,才能对他们进行动态的存储分配。JavaScript程序每次创建字符串、数组或对象时...

    KitorinZero 评论0 收藏0
  • 正则达式相关函数

    正则表达式对象方法 test方法 var regexp1 = /a/g; var regexp2 = /a/; var str = abcd; regexp1.test(str); true regexp1.test(str); false regexp1.test(str); true regexp2.test(str); true regexp2.test(str); true 当正则表示式是...

    Profeel 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<