- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
正则表达式模式匹配的String方法
正则表达式模式匹配的String方法
在JavaScript代码中使用正则表达式进行模式匹配经常会用到String对象和RegExp对象的一些方法,例如replace、match、search等方法,以下是对一些方法使用的总结。
String对象中支持正则表达式有4种方法,分别是:search、replace、match、split
str.search(regexp)
定义:search()方法将在字符串str中检索与表达式regexp相匹配的字串,并且返回第一个匹配字串的第一个字符的位置。如果没有找到任何匹配的字串,则返回-1。
例如:
?
1
2
3 var str = Javascript;
str.search(/script/); // 返回 script 中s的位置为 4
str.search(/j/i); // 设置正则表达是标识i:忽略大小写,则匹配到J,返回位置0 但是,search()方法不支持全局搜索,因为会忽略正则表达式参数的标识g,并且也忽略了regexp的lastIndex属性,总是从字符串的开始位置进行检索,所以它会总是返回str的第一个匹配的位置。
例如:
?
1
2 var str = javascript is cool;
str.search(/s/g); // 返回 javascript 中的s位置4,不会继续检索s str.replace(regexp, replacement)
定义:replace()方法是执行查找并替换的操作。它将正则表达式regexp匹配到的字串,然后用replacement的字符串替换掉字串,如果有全局标识g,则替换全部匹配的字串,否则只替换第一个匹配字串。
replace方法应该是比较常用的一个方法,在字符串替换操作中非常有用的。例如:
1、简单替换
?
1
2 var str = javascript;
str.replace(/javascript/,JavaScript); // 将字符串javascript替换为JavaScript 2、全局替换
?
1
2
3 // 使用全局表示g进行全局替换
var str = javascript;
str.replace(/a/g, b); // 将所有的字母a替换为字母b,返回 jbvbscript 3、使用replacement中的特殊字符替换,在replacement中$字符有特殊的意义,具体说明如下表格:
字符 替换文本 $1、$2、...、$99 与regexp中的第1个到99 个子表达式相匹配的文本 $ 与regexp相匹配的字串 $` 位于匹配子串左侧的文本 $ 位于匹配子串右侧的文本 $$ 直接量符号 来看下例子:
?
1
2
3
4
5
6
7
8
9
10
11
12
13 //1、用子表达式替换:$1、$2等
var str = javascript;
str.replace(/(java)(script)/,$2$1);?
// 表达式中()就是一个子表达式,$1对应是第一个表达式的内容,即java,$2为script,所以替换结果为:scriptjava?
//2、$ 为正值表达式匹配的字串
var str = javascript;
str.replace(/java/,$-);?
// 正则表达式通过直接量java来匹配,匹配结果为java,则 $的值为java,然后用字符串$-来替换匹配的字串,结果为java-script
// 3、 $` $ $$
var str = javascript;
str.replace(/ava/,$`); // $`为匹配子串ava的左侧文本,则为j,则替换后ava的结果为:jjscript
str.replace(/ava/,$); // $为匹配子串ava的右侧文本,则为script,则替换ava的结果为:jscriptscript
str.replace(/ava/,$$); // $$为直接量符号,即插入一个$符号,替换结果为:j$script 4、使用replacement作为函数替换
replace的参数replacement可以是函数而不是字符串,每个匹配都会调用该函数,它返回的字符串将作为替换的文本使用。该函数的第一个参数是整个匹配模式的字符串,接下来的参数是与模式中的子表达式匹配的字符串,可以有0个或多个参数。接下来的参数是一个整数,声明了匹配在str中出现的位置。最后的参数是str自身。
来看个例子:
?
1
2
3
4
5
6
7
8
9
10
11 // match 为匹配整个字符串,即:abc12345#$*%
// p1 为第一个子表达式,([^\d]*)
文档评论(0)