Method String JavaScript

Method string membantu Anda mengatur string.

Method dan property string

Nilai asli, seperti "Bill Gates", tidak dapat memiliki property dan method (karena mereka bukan objek).

tetapi melalui JavaScript, method dan property juga dapat digunakan untuk nilai asli, karena saat method dan property dieksekusi, JavaScript akan menganggap nilai asli sebagai objek.

Panjang string

panjang Property mengembalikan panjang string:

实例

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;

亲自试一试

Mencari string di dalam string

indexOf() Method mengembalikan teks yang ditentukan di dalam stringpertamaindeks penampilan (posisi):

实例

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China");

亲自试一试

JavaScript menghitung posisi dari nol.

0 adalah posisi pertama di dalam string, 1 adalah kedua, 2 adalah ketiga ...

lastIndexOf() Method mengembalikan posisi teks yang ditentukan di dalam stringterakhirindeks penampilan pertama:

实例

var str = "The full name of China is the People's Republic of China.";
var pos = str.lastIndexOf("China");

亲自试一试

jika teks tidak ditemukan indexOf() dan lastIndexOf() semua mengembalikan -1.

实例

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("USA");

亲自试一试

Kedua method menerima parameter kedua sebagai posisi awal pencarian.

实例

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China", 18);

亲自试一试

lastIndexOf() Method mencari ke belakang (dari belakang ke depan), yang berarti: jika parameter kedua adalah 50, maka mencari dari posisi 50 sampai awal string.

实例

var str = "The full name of China is the People's Republic of China.";
var pos = str.lastIndexOf("China", 50);

亲自试一试

Mencari string di dalam string

search() Method mencari string yang berisi nilai spesifik dan mengembalikan posisi yang cocok:

实例

var str = "The full name of China is the People's Republic of China.";
var pos = str.search("locate");

亲自试一试

Anda perhatikankah?

dua metode ini,indexOf() dan search(), adalahyang sama

Kedua metode ini adalah yang sama. Perbedaan nya adalah:

  • metode search() tidak dapat menetapkan parameter mulai kedua.
  • metode indexOf() tidak dapat menetapkan nilai pencarian yang kuat (ekspresi reguler).

Anda akan正则表达式pada bab ini untuk belajar nilai pencarian yang kuat ini.

mengambil bagian string

terdapat tiga metode untuk mengambil bagian string:

  • slice(mulai, berakhir)
  • substring(mulai, berakhir)
  • substr(mulai, panjang)

metode slice()

slice() mengambil bagian dari string dan mengembalikan bagian yang diambil dalam string baru.

metode ini menetapkan dua parameter: indeks awal (lokasi awal), indeks akhir (lokasi berakhir).

contoh ini memotong bagian 7 sampai 13 dari string:

实例

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

hasil res dari:

Banana

亲自试一试

jika parameter ada yang negatif, maka dihitung dari akhir string.

contoh ini memotong bagian -12 sampai -6 dari string:

实例

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

hasil res dari:

Banana

亲自试一试

jika parameter kedua diabaikan, maka metode ini akan memotong sisanya string:

实例

var res = str.slice(7);

亲自试一试

atau dihitung dari akhir:

实例

var res = str.slice(-13);

亲自试一试

提示:posisi negatif tidak berlaku untuk Internet Explorer 8 dan versi sebelumnya.

metode substring()

substring() seperti slice()

perbedaan nya adalah substring() tidak dapat menerima indeks negatif.

实例

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

hasil res dari:

Banana

亲自试一试

jika parameter kedua diabaikan, maka substring() mengpotong sisanya string.

metode substr()

substr() seperti slice()

perbedaan nya adalah parameter kedua menentukan bagian yang diambil.panjang

实例

var str = "Apple, Banana, Mango";
var res = str.substr(7,6);

hasil res dari:

Banana

亲自试一试

jika parameter kedua diabaikan, maka substr() akan memotong sisanya string.

实例

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

亲自试一试

hasil res dari:

Banana, Mango

jika parameter pertama negatif, maka posisi akan dihitung dari akhir string.

实例

var str = "Apple, Banana, Mango";
var res = str.substr(-5);

亲自试一试

hasil res dari:

Mango

parameter kedua tidak boleh negatif, karena ia menentukan panjang.

ganti konten string

replace() cara menggantikan nilai lain di tempat yang ditentukan dalam string:

实例

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

亲自试一试

replace() 方法不会改变调用它的字符串。它返回的是新字符串。

默认地,replace() 只替换首个匹配

实例

str = "Please visit Microsoft and Microsoft!";
var n = str.replace("Microsoft", "W3School");

亲自试一试

默认地,replace() 对大小写敏感。因此不对匹配 MICROSOFT:

实例

str = "Please visit Microsoft!";
var n = str.replace("MICROSOFT", "W3School");

亲自试一试

如需执行大小写不敏感的替换,请使用正则表达式 /i(大小写不敏感):

实例

str = "Please visit Microsoft!";
var n = str.replace(/MICROSOFT/i, "W3School");

亲自试一试

请注意正则表达式不带引号。

如需替换所有匹配,请使用正则表达式的 g 标志(用于全局搜索):

实例

str = "Please visit Microsoft and Microsoft!";
var n = str.replace(/Microsoft/g, "W3School");

亲自试一试

您将在 JavaScript 正则表达式这一章学到更多有关正则表达式的内容。

转换为大写和小写

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

实例

var text1 = "Hello World!";       // 字符串
var text2 = text1.toUpperCase();  // text2 是被转换为大写的 text1

亲自试一试

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

实例

var text1 = "Hello World!";       // 字符串
var text2 = text1.toLowerCase();  // text2 是被转换为小写的 text1

亲自试一试

concat() 方法

concat() 连接两个或多个字符串:

实例

var text1 = "Hello";
var text2 = "World";
text3 = text1.concat(" ",text2);

亲自试一试

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

实例

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

所有字符串方法都会返回新字符串。它们不会修改原始字符串。

正式地说:字符串是不可变的:字符串不能更改,只能替换。

String.trim()

trim() 方法删除字符串两端的空白符:

实例

var str = "       Hello World!        ";
alert(str.trim());

警告:Internet Explorer 8 或更低版本不支持 trim() 方法。

亲自试一试

如需支持 IE 8,您可搭配正则表达式使用 replace() 方法代替:

实例

var str = "       Hello World!        ";
alert(str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''));

亲自试一试

您还可以使用上面的 replace 方案把 trim 函数添加到 JavaScript String.prototype:

实例

if (!String.prototype.trim) {
  String.prototype.trim = function () {
    return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
};
var str = "       Hello World!        ";
alert(str.trim());

亲自试一试

提取字符串字符

这是两个提取字符串字符的安全方法:

  • charAt(position)
  • charCodeAt(position)

charAt() 方法

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

实例

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

亲自试一试

charCodeAt() 方法

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

实例

var str = "HELLO WORLD";
str.charCodeAt(0);         // 返回 72

亲自试一试

属性访问(Property Access)

ECMAScript 5 (2009) 允许对字符串的属性访问 [ ]:

实例

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

亲自试一试

使用属性访问有点不太靠谱:

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

实例

var str = "HELLO WORLD";
str[0] = "A";             // 不产生错误,但不会工作
str[0];                   // 返回 H

亲自试一试

提示:如果您希望按照数组的方式处理字符串,可以先把它转换为数组。

把字符串转换为数组

可以通过 split() 将字符串转换为数组:

实例

var txt = "a,b,c,d,e";   // 字符串
txt.split(",");          // 用逗号分隔
txt.split(" ");          // 用空格分隔
txt.split("|");          // 用竖线分隔

亲自试一试

如果省略分隔符,被返回的数组将包含 index [0] 中的整个字符串。

如果分隔符是 "",被返回的数组将是间隔单个字符的数组:

实例

var txt = "Hello";       // 字符串
txt.split("\"");           // 分隔为字符

亲自试一试

完整的 String 参考手册

如需完整的参考手册,请访问我们完整的 JavaScript 字符串参考手册

该手册包含了有关所有字符串属性和方法的描述和实例。