JavaScript 正则表达式对象RegExp

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

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=“[email protected]

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]

}

"[email protected]".replace(re,callback);

//"[email protected]"

glaob;

//["[email protected]", "abcdef", "123", "com", 0, "[email protected]"]


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





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章