首页 > 编程笔记 > JavaScript笔记 阅读:24

JavaScript String字符串类的用法(非常详细,附带实例)

JavaScript 中的字符串使用一对双引号或一对单引号定义,它们是 String 类的实例,本节将介绍 String 类的常用成员。

首先,可以使用 length 属性获取字符串中的字符数量,如:
<script>
    var s = "英文字母abc";
    document.write(s.length);  // 7
</script>

需要获取某个位置的字符,可以使用 charAt() 方法。请注意,这里的索引值同样是从 0 开始,即 0 表示第一个字符的位置,1 表示第二个字符的位置,以此类推。

下面的代码演示了 charAt() 方法的应用:
<script>
    var s = "英文字母abc";
    document.write(s.charAt(0));  // 英
</script>

需要将字符串转换为字符数组时,可以使用如下代码(/lib/js/common.js):
/* 字符串转换为字符数组 */
function str2array(s)
{
    var arr=[];
    for(var i=0;i<s.length;i++)
        arr[i]=s.charAt(i);
    return arr;
}
下面的代码用于测试 str2array() 函数的使用:
<script src="/lib/js/common.js"></script>
<script>
    var s = "英文字母abc";
    document.write(str2array(s));
</script>
代码执行结果见下图:


需要获取指定位置字符的 Unicode 编码时,可以使用 charCodeAt() 方法,其参数同样为从 0 开始的索引值。下面的代码演示了 charCodeAt() 方法的应用:
<script>
    var s = "英文字母abc";
    document.write(s.charCodeAt(0));  // 35221
</script>

需要在字符串中查找内容时,可以使用 indexOf() 方法,此方法会返回查询内容第一次出现的位置(0 开始的索引值),如果没有找到,则返回 -1。下面的代码演示了 indexOf() 函数的使用:
<script>
    var s = "英文字母abc";
    document.write(s.indexOf("字"));  // 2
    document.write("<br>");
    document.write(s.indexOf("中"));  // -1
</script>

相应的方法还有 lastIndexOf() 方法,其功能是返回查询内容最后一次出现的索引值,如果没有找到,同样返回 -1。下面的代码演示了 lastIndexOf() 方法的使用:
<script>
    var s = "abcabcabc";
    document.write(s.lastIndexOf("abc"));  // 6
</script>

需要截取字符串的一部分内容时,可以使用 substring() 方法。其中:
如果不指定参数二,则返回从参数一指定位置开始的所有内容。方法会返回一个包含截取内容的新字符串对象,如下面的代码:
<script>
    var s = "abcdefg";
    document.write(s.substring(2, 5));  // cde
</script>

此外,slice() 方法与 substring() 方法比较相似,只是 slice() 方法的第二个参数可以设置为负数,如下面的代码:
<script>
    var s = "abcdefg";
    document.write(s.slice(1, -2));  // bcde
</script>
本例的 slice() 方法中,当参数二为负数时,会截取后 n 个字符之前的内容(n 为参数二的绝对值)。

修改字符串中字母的大小写形式时,toLowerCase() 方法可以将字符串中的字母转换为小写,并返回转换后的全部内容;toUpperCase() 方法则将字符串中的字母转换为大写,并返回转换后的全部内容。下面的代码演示了这两个方法的应用:
<script>
    document.write("abcdefg".toUpperCase());
    document.write("<br>");
    document.write("AbCdEFg".toLowerCase());
</script>
代码执行结果见下图:


split() 方法可以使用指定的内容将字符串分割为字符串数组。如下面的代码使用逗号分隔字符串:
<script>
    var s = "abc,def,ghi";
    var arr = s.split(",");
    for (var i = 0; i < arr.length; i++) {
        document.write(arr[i]);
        document.write("<br>");
    }
</script>
代码执行结果见下图:


split() 方法还可以指定第二个参数,指定分割后数组的最大成员数,如下面的代码:
<script>
    var s = "abc,def,ghi";
    var arr = s.split(",", 2);
    for (var i = 0; i < arr.length; i++) {
        document.write(arr[i]);
        document.write("<br>");
    }
</script>
本例的 split() 方法中指定最多返回 2 个成员的数组,代码执行结果见下图:


请注意,如果 split() 方法中第二个参数指定的数值大于可分割的数量,则按实际情况分割。

需要替换字符串中的内容时,可以使用 replace() 方法。如下面的代码使用正则表达式替换字符串中的内容:
<script>
    var s1 = "abc,def,ghi";
    var s2 = s1.replace(/,/g, "|");
    document.write(s2);
</script>
replace() 方法需要两个参数,第一个参数指定需要替换的原始内容,这里使用了正则表达式,/,/g 匹配逗号字符,字母 g 表示全局替换,如果没有指定 g 字符,只会替换第一个逗号。

replace() 方法会返回内容替换后的新字符串对象,执行代码后显示“abc|def|ghi”。

相关文章