访问

charAt() 方法

charAt() 方法返回字符串中指定下标(位置)的字符串:

var str = "HELLO WORLD";
str.charAt(0);            // 返回 H

charCodeAt() 方法

charCodeAt() 方法返回字符串中指定索引的字符 unicode 编码:

var str = "HELLO WORLD";

str.charCodeAt(0);         // 返回 72

下标访问

var str = "HELLO WORLD";
str[0];                   // 返回 H

下标访问并不太合理,因为:

  • 不适用 Internet Explorer 7 或更早的版本
  • 它让字符串看起来像是数组(其实并不是)
  • 如果找不到字符,[ ] 返回 undefined,而 charAt() 返回空字符串。
  • 它是只读的。str[0] = “A” 不会产生错误(但也不会工作!)

查找

indexOf()

返回字符串中指定文本首次出现的索引(位置)

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript 字符串方法</h1>

<p>indexOf() 方法返回指定文本首次出现的位置:</p>

<p id="demo"></p>

<script>
var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China");
document.getElementById("demo").innerHTML = pos;
</script>

</body>
</html>

输出结果为17(即”China”中的第一个字母”C”的位置)
注意该方法是搜索完整的字符串,而不是搜索单个字母

也可以设置起始点
格式:indexOf(string, pos)

lastIndexOf()

与indexOf基本相同,只不过是查找的最后一次出现的位置。
返回值仍然是第一个字母的位置

与indexOf基本相同
不同之处在于:

  • search() 方法无法设置第二个开始位置参数。
  • indexOf() 方法无法设置更强大的搜索值(正则表达式)。

子串

slice()

提取字符串的某个部分并在新字符串中返回被提取的部分(也可以省略第二个参数)。

该方法设置两个参数:起始索引(开始位置),终止索引(结束位置)。
注意索引可以为负数

var str = "Apple, Banana, Mango";
var res = str.slice(7,13);

/*
res 的结果是:

Banana
*/

substring() 方法

substring() 类似于 slice()。

不同之处在于 substring() 无法接受负的索引。

substr() 方法

substr() 类似于 slice()。

不同之处在于第二个参数规定被提取部分的长度。
第二个参数也可以为空

转换

确切的说,字符串不可以被修改,以下操作仅仅是返回一个新的字符串,而不是修改原字符串

replace()

用另一个值替换在字符串中指定的值:
实例

str = “Please visit Microsoft!”;
var n = str.replace(“Microsoft”, “W3School”);

replace只替换首个匹配

replace也可使用正则表达式

大小写转换

通过 toUpperCase() 把字符串转换为大写

通过 toLowerCase() 把字符串转换为小写

cancat 连接

concat() 方法可用于代替加运算符。下面两行是等效的:

var text = "Hello" + " " + "World!";
var text = "Hello".concat(" ","World!");

cancat的参数可以是任意多个字符串

split() 将字符串转换为数组:

function myFunction() {
  var str = "a,b,c,d,e,f";
  var arr = str.split(",");
  document.getElementById("demo").innerHTML = arr[3];
}

返回值为”d”