js的正则函数主要有有replace,match,test,search,exec。
首先对文中的变量进行说明:
rgExp为包含正则表达式模式和可用标志的正则表达式对象。也可以是包含正则表达式模式和可用标志的变量名或字符串文字。
/i (忽略大小写)
/g (全文查找出现的所有匹配字符)
(1)match 方法
使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回,如果未能匹配到,则返回null。
stringObj.match(rgExp)
例:
var str = "ThIS isn't me";
var reg = /is/ig;
var ret = str.match(reg);
console.log(ret); //["IS", "is"]
(2)replace 方法
返回根据正则表达式进行文字替换后的字符串的复制,原字符串不变。
stringObj.replace(rgExp, replacement);
例:
var str = "i love china!";
var pattern = /i/g;
var ret = str.replace(pattern, "I");
alert(ret); //I love chIna!
ECMAScript v3 规定,replace() 方法的参数 replacement 可以是函数而不是字符串。在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。
(3)test 方法
返回一个 Boolean 值,它指出在被查找的字符串中是否匹配给出的正则表达式,如果是则返回 true,否则就返回 false。
例:
var str = "bbs.byr.cn";
var reg = /b/;
var ret = reg.test(str);
alert(ret); //true
(4)search 方法
返回与正则表达式查找内容匹配的 第一个子字符串 (与是否全局查找不管) 的索引数,否则返回-1 。
stringObj.search(rgExp) ;
例:
var str = "This isn't me";
var reg = /is/; // /is/g (结果一样);
var ret = str.search(reg);
alert(ret); //2
(5)exec 方法
用正则表达式模式在字符串中查找,并返回该查找结果的第一个值(数组),如果匹配失败,返回null。如果想得到全部查询结果,可以使用while循环。
返回数组包含:
input:整个被查找的字符串的值;
index:匹配结果所在的位置(位);
lastInput:下一次匹配结果的位置;
arr:结果值,arr[0]全匹配结果,arr[1,2...]为表达式内()的子匹配,由左至右为1,2...。
例:
var str = "i love china!";
var reg = /i\B/g; i后不是空格
var ret = reg.exec(str);
alert(ret); // i
console.log(ret); //["i", index: 9, input: "i love china!"]
(6)split 方法
将一个字符串分割为子字符串,然后将结果作为字符串数组返回。
stringObj.split([separator[, limit]])
其中separator表示分割方式,limit表示分割后的返回个数。
例:
var s, ss;
var s = "The rain in Spain falls mainly in the plain.";
ss = s.split(/s/i); // ['The rain in' , 'pain fall' , 'mainly in the plain.']