JavaScript 字符串(String) 对象

String 对象用于处理已有的字符块。


JavaScript 字符串

一个字符串用于存储一系列字符就像 "John Doe".

一个字符串可以使用单引号或双引号:

var
  carname = "Volvo XC60";
var
  carname = 'Volvo XC60';

尝试一下 »

你使用位置(索引)可以访问字符串中任何的字符:

var character = carname[7];

尝试一下 »

字符串的索引从零开始, 所以字符串第一字符为 [0],第二个字符为 [1], 等等。

你可以在字符串中使用引号,如下实例:

var answer = "It's alright";
var answer = "He is called 'Johnny'";
var answer = 'He is called "Johnny"';

尝试一下 »

或者你可以在字符串中使用转义字符(\)使用引号:

<script>
  var carname1 = "Volvo XC60";
  var carname2 = 'Volvo XC60';
  var answer1 = 'It\'s alright';
  var answer2 = "He is called \"Johnny\"";
  var answer3 = 'He is called "Johnny"';
  document.write(carname1 + "<br>")
  document.write(carname2 + "<br>")
  document.write(answer1 + "<br>")
  document.write(answer2 + "<br>")
  document.write(answer3 + "<br>")
</script>

尝试一下 »


字符串(String)

字符串(String)使用长度属性length来计算字符串的长度:

<script>
  var txt = "Hello World!";
  document.write("<p>" + txt.length + "</p>");
  var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  document.write("<p>" + txt.length + "</p>");
</script>

尝试一下 »


在字符串中查找字符串

字符串使用 indexOf() 来定位字符串中某一个指定的字符首次出现的位置:

<p id="p1">Click the button to locate where "locate" first occurs.</p>
<p id="p2">0</p>
<button onclick="myFunction()">点我</button>
<script>
  function myFunction() {
    var str = document.getElementById("p1").innerHTML;
    var n = str.indexOf("locate");
    document.getElementById("p2").innerHTML = n + 1;
  }
</script>

尝试一下 »

如果没找到对应的字符函数返回-1

lastIndexOf() 方法在字符串末尾开始查找字符串出现的位置。


内容匹配

match()函数用来查找字符串中特定的字符,并且如果找到的话,则返回这个字符。

<script>
  var str = "Hello world!";
  document.write(str.match("world") + "<br>");
  document.write(str.match("World") + "<br>");
  document.write(str.match("world!"));
</script>

尝试一下 »


替换内容

replace() 方法在字符串中用某些字符替换另一些字符。

<p>替换 "Microsoft" 为 "Mifengjc" :</p>
<button onclick="myFunction()">点我</button>
<p id="demo">请访问 Microsoft!</p>
<script>
  function myFunction() {
    var str = document.getElementById("demo").innerHTML;
    var txt = str.replace("Microsoft", "Mifengjc");
    document.getElementById("demo").innerHTML = txt;
  }
</script>

尝试一下 »


字符串大小写转换

字符串大小写转换使用函数 toUpperCase() / toLowerCase():

<script>
  var txt = "Hello World!";
  document.write("<p>" + txt.toUpperCase() + "</p>");
  document.write("<p>" + txt.toLowerCase() + "</p>");
  document.write("<p>" + txt + "</p>");
</script>
<p>该方法返回一个新的字符串,源字符串没有被改变。</p>

尝试一下 »


字符串转为数组

字符串使用split()函数转为数组:

<p id="demo">单击按钮显示数组。</p>
<button onclick="myFunction()">点我</button>
<script>
  function myFunction() {
    var str = "a,b,c,d,e,f";
    var n = str.split(",");
    document.getElementById("demo").innerHTML = n[0];
  }
</script>

尝试一下 »


特殊字符

JavaScript 中可以使用反斜线(\)插入特殊符号,如:撇号,引号等其他特殊符号。

查看如下 JavaScript 代码:

var txt = "We are the so-called "
Vikings " from the north.";
document.write(txt);

在JavaScript中,字符串的开始和停止使用单引号或双引号。这意味着,上面的字符串将被切成: We are the so-called

解决以上的问题可以使用反斜线来转义引号:

var txt = "We are the so-called \"Vikings\" from the north.";
document.write(txt);

JavaScript将输出正确的文本字符串:We are the so-called "Vikings" from the north.

下表列出其他特殊字符,可以使用反斜线转义特殊字符:

代码 输出
\' 单引号
\" 双引号
\\ 斜杆
\n 换行
\r 回车
\t tab
\b 空格
\f 换页

字符串属性和方法

属性:

  • length
  • prototype
  • constructor

方法:

  • charAt()
  • charCodeAt()
  • concat()
  • fromCharCode()
  • indexOf()
  • lastIndexOf()
  • match()
  • replace()
  • search()
  • slice()
  • split()
  • substr()
  • substring()
  • toLowerCase()
  • toUpperCase()
  • valueOf()