在前一节中了解了 test 方法和 exec 方法。这一节认识一下字符串的 str 方法。
使用字符串的正则表达式方法
除了 test() 和 exec() 方法, string 对象也提供了4个使用正则表达式的方法。
具体见图
具体的每一条我们一一验证
-
match(pattern)
match(pattern) 是返回 pattern 的字串或者 null 具体代码见下图var pattern=/xiancai/;
var str='咸菜 is a breakfast,Xiancai is a name';
alert( str.match(pattern));
具体的 alert 是
因为是没有 xiancai 这个字符所以返回 null。如果将上面的代码做出改变。var pattern=/xiancai/g;
var str='咸菜 is a breakfast,xiancai is a name.xiancai is a name';
alert( str.match(pattern));
上面的代码中加入了 g 全局匹配,这样就有数组 xiancai,xiancai 出现了 如果要看类型的话可以在代码中加入 typeof 来查看,打印的就会是 object。
var pattern=/xiancai/g;
var str='咸菜 is a breakfast,xiancai is a name.xiancai is a name';
alert(typeof str.match(pattern));
从图可以看出来是 object 类型
或者是用这样的代码将数组打印出来证明是数组。
var pattern=/xiancai/g;
var str='咸菜 is a breakfast,xiancai is a name.xiancai is a name';
var a=str.match(pattern);
alert (a[1]);
-
replace(pattern,relacement)
replace(pattern,relacement) 是用 relacement 将 pattern 替换掉。var pattern=/xiancai/g;
var str='咸菜 is a breakfast,xiancai is a name.xiancai is a name';
alert(str.replace(pattern,'Xiancai'));//返回替换后的字符。
这时候我开启了全局,会替换所有匹配的字符串。如果没有匹配全局则是替换第一个参数。
-
使用 search 来查找匹配的数组
var pattern=/xiancai/g;
var str='咸菜 is a breakfast,xiancai is a name.xiancai is a name';
alert(str.search(pattern));
返回第一个匹配到的位置,这时候不会查找到第二个 xiancai
如果找不到就返回 -1;具体有兴趣可以自己试试。
-
split 拆分字符串作为数组
var pattern=/xiancai/g;
var str='咸菜 is a breakfast,xiancai is a name.xiancai is a name';
alert(str.split(pattern)); //这里我们匹配了xiancai,我们看看会打印什么
这时候就看到 1 方框和 2 方框里面是“,,”和“.,”说明把字符串拆分成了数组。