JavaScript 正则表达式对象RegExp

本文介绍正则表达式的组成及其在JavaScript中的应用,包括 RegExp 对象的属性与方法,以及常用的字符串方法如 match、search、replace 和 split 的用法。

一个正则表达式通常由以下部分组成:

1一个用于匹配的模式文本

2用0个或多个修饰符描述的匹配模式细节

eg:var re=new RegExp("j.*t");

     var re=/j.*t/

*:0个或多个单元

.:任意字符

   RegExp对象的属性:

global:若该属性的值为false,相关搜索在找到第一个位置就会停止。

ignoreCase:设置大小写相关,默认为false

multiline:设置是否跨行搜索的选项,默认为false

lastIndex:搜索开始的索引为,默认为0

source:用于存储正则表达式匹配模式的属性

注意:除了lastIndex外,上面所有属性在对象创建之后就都不能被修改了。


RegExp对象的方法:

test()返回值是布尔值,找到匹配内容,返回True

exec()返回的则是由匹配字符串组成的数组。

eg:var str='JavaScript';
/j.*/igm.test(str)

//true

var str='JavaScript';
/j.*/ig.exec(str)[0]

//["JavaScript"]

  以正则表达式为参数的字符串方法:

match():返回一个包含匹配内容的数组

search():返回是第一个匹配内容所在位置

replace():将匹配文本替换成指定的字符串

split():根据指定的正则表达式将目标字符串分割成若干个数组元素

eg:var str=new String('JavaScript');
str.match(/J/)

//["J"]


var str=new String('JavaScript');
str.search(/J/)

//0

var str=new String('JavaScript');
str.replace(/J/,'')

//avaScript


想让相关替换的字符串中包含匹配的文本,可以使用修饰符$& ,

eg:str.replace(/[A-Z]/g,"_$&")

//"_Java_Script"

小例子:

提取E-mail的前半部分

var email=“test@abc.com”

var username=email.replace(/(.*)@.*/,"$1")

//test  $1表示匹配分组中的第一组

回调式替换:

function replaceCallback(match){

return "-"+match.toLowerCase();

}

str.replace(/[A-Z]/g,replaceCallback);

//"-java-script"

eg:

var glob;//参数数组

var re=/(.*)@(.*)\.(.*)/;

var callback=function(){

gloab=arguments;

return arguments[0] + "------" +arguments[1]+"----"+arguments[2]+"----"+arguments[3]+"----"+arguments[4]

}

"abcdef@123.com".replace(re,callback);

//"abcdef@123.com------abcdef----123----com----0"

glaob;

//["abcdef@123.com", "abcdef", "123", "com", 0, "abcdef@123.com"]


首参数:正则表达式所匹配的内容
尾参数:被搜索的字符串
尾参数之前的参数:匹配内容所在位置
剩下的参数:有regexp模式所分组的所有匹配字符串组





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值