这节学习几个支持正则表达式的字符串的方法。链接
split
把字符串分割为字符串数组。
<script>
var s = "1a2b3c4d5e6f";
var result = s.split("c");
console.log(result);
console.log(s);
</script>
这里只能根据某个字符拆,如何做到根据任意字符拆分?
该方法可以传递一个正则表达式作为参数。
<script>
var s = "1a2b3c4d5E6f";
var result = s.split(/[a-z]|[A-Z]/);
console.log(result);
console.log(s);
</script>
search
检索与正则表达式相匹配的值。
返回第一次出现的索引,没有搜索到返回-1。
<script>
var s = "hello abc hello abc";
var result = s.search("abc");
console.log(result);
console.log(s);
</script>
这个也可以传递一个正则表达式作为参数。
<script>
// 搜索字符串中是否含有abc或aec或afc
var s = "hello abc hello abc";
var result = s.search(/a[bef]c/);
console.log(result);
console.log(s);
</script>
这个即使设置全局匹配也只会查第一个。
match
找到一个或多个正则表达式的匹配。
<script>
var s = "1a2b3c4d5e";
var result = s.match(/[a-z]|[A-Z]/);
console.log(result);
console.log(s);
</script>
这里只找了第一个字母,因为默认情况下是只找第一个符合正则表达式的。
可以设置为全局匹配模式。
<script>
var s = "1a2b3c4d5e";
var result = s.match(/[a-z]|[A-Z]/ig);
console.log(result);
console.log(s);
</script>
从结果可以看到,返回值是个数组。
replace
替换与正则表达式匹配的子串。
两个参数,第一个为被替换的内容,第一个为新的内容。
<script>
var s = "1a2ab3C4D5e";
var result = s.replace('a','A');
console.log(result);
console.log(s);
</script>
这里默认只替换了一个a。
用正则写。
<script>
var s = "1a2ab3C4D5e";
var result = s.replace(/a/g,'A');
console.log(result);
console.log(s);
</script>