1. substring( )和slice( )语法
JavaScript中和subscript()和slice()语法格式如下:
1) substring(start[,end]):从start(包括)索引处,截取到end(不包括)索引处,不截取end索引处的字符串。如果没有end参数,将从start处一直截取到字符串尾。
2) slice(start[,end]):与substring()的功能基本一致,区别是slice()可以接受负载作为索引,当使用索引值时,表示从字符串的右边开始计算索引,即右边的索引为-1.
看下面的代码:
<script type="text/javascript">
var s = "abcdefg";
//取得第1个(包括)到第5个(不包括)的子串
a = s.slice(0 , 4);
//取得第3个(包括)到第5个(不包括)的子串
b = s.slice(2 , 4);
//取得第5个(包括)到最后的子串
c = s.slice(4);
//取得第4个(包括)到倒数第1个(不包括)的子串
d = s.slice(3 , -1);
//取得第4个(包括)到倒数第2个(不包括)的子串
e = s.slice(3 , -2);
//取得倒数第3个(包括)到倒数第1个(不包括)的子串
f = s.slice(-3 , -1);
alert("a : " + a + "\nb : "
+ b + "\nc : "
+ c + "\nd : "
+ d + "\ne : "
+ e + "\nf : "
+ f );
</script>
运行结果:
2. match( )和search( )
match()和search()方法都支持使用正则表达式作为子串,区别是前者返回匹配的子字符串,后者返回匹配的索引。match()支持使用全局匹配,通过使用g标志来表示全局匹配,match()方法返回所有匹配正则表达式的子串组成的数组。
match()方法的返回值为字符串数组或null,如果包含匹配值,将返回字符串数组;否则就返回null。search()返回值为整型变量,如果搜索到匹配子串,则返回子串索引值;否则是返回-1.
看下面的代码:
<script type="text/javascript">
// 定义字符串s的值
var s = "abfd--abc@d.comcdefg";
// 从s中匹配正则表达式
a = s.search(/[a-z]+@d.[a-zA-Z]{2}m/);
// 定义字符串变量str
var str = "1dfd2dfs3df5";
// 查找字符串中所有单个的数值
var b = str.match(/\d/g);
// 输出a和b的值
alert(a + "\n" + b);
</script>
运行结果: