JavaScript字符串

用于存储和操作文本。

JavaScript String 对象

String对象创建方法:

new String(s);

var txt = new String("string");
或者更简单方式:
var txt = "string";

String(s);

//强制类型转换
var s = true;
var str=String(s);
//输出:true
//将布尔类型s,强制转换为字符串类型



String 对象属性

返回字符串的长度(字符数)。

var txt = "Hello World!";
document.write(txt.length);
//输出:12



对象方法

charAt()方法

返回字符串中指定位置的字符

参数:

index: 必需。表示字符串中某个位置的数字,即字符在字符串中的位置。

//返回最后一个字符
var str = "HELLO WORLD";
var n = str.charAt(str.length-1);
document.write(n);
//输出D



charCodeAt() 方法

返回字符串指定位置的字符的 Unicode 编码。

参数:

index: 必需。表示字符串中某个位置的数字,即字符在字符串中的下标。

var str = "HELLO WORLD";
var n = str.charCodeAt(0);
document.write(n);
//输出:72。下标0位置字符为H,对应Unicode 编码为72



fromCharCode() 方法

可接受一个指定的 Unicode 值,然后返回一个字符串。

注意:该方法是 String 的静态方法,字符串中的每个字符都由单独的 Unicode 数字编码指定。使用语法: String.fromCharCode()。

参数:

n1, n2, …, nX: 必需。一个或多个 Unicode 值,即要创建的字符串中的字符的 Unicode 编码。

var n = String.fromCharCode(72,69,76,76,79);
document.write(n);
//输出:HELLO



concat() 方法

用于连接两个或多个字符串。

该方法没有改变原有字符串,返回两个或多个字符串连接后生成的新字符串。

参数:

string1, string2, …, stringX: 必需。将被连接为一个字符串的一个或多个字符串对象。

// 连接3个字符串:
var str1="Hello! ";
var str2="world!";
var str3=" Have a nice day!";
var n = str1.concat(str2,str3);
document.write(n);
//输出:Hello! world! Have a nice day!



indexOf() 方法

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。

如果没有找到匹配的字符串则返回 -1。

注意: indexOf() 方法区分大小写。

参数:

searchvalue: 必需。规定需检索的字符串值。

start: 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length -1。如省略该参数,则将从字符串的首字符开始检索。

// 在字符串查找字符 "e" 第一次出现的位置
var str="Hello world, welcome to the universe.";
var n=str.indexOf("e");
document.write(n);
//输出:1



lastIndexOf() 方法

lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,如果指定第二个参数 start,则在字符串中的指定位置从后向前搜索。

注意: 该方法将从后向前检索字符串,但返回是从起始位置 (0) 开始计算子字符串最后出现的位置。 看它是否含有字符串。

开始检索的位置在字符串的 start 处或字符串的结尾(没有指定 start 时)。

如果没有找到匹配字符串则返回 -1 。

注意:lastIndexOf() 方法是区分大小写的!

参数:

searchvalue: 必需。规定需检索的字符串值。

start: 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的最后一个字符处开始检索。

var str="I am from runoob,welcome to runoob site.";
var n=str.lastIndexOf("runoob", 20);
var m=str.lastIndexOf("n");
document.write(n);
document.write(m);
/*
输出:
10
30
*/



search() 方法

search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,找到输出子字符串位置。

如果没有找到任何匹配的子串,则返回 -1。

参数:

searchvalue: 必须。查找的字符串或者正则表达式。

// 执行一次对大小写敏感的查找
var str="Mr. Blue has a blue house";
document.write(str.search("blue"));
// 输出:15
// 执行一次忽略大小写的检索
var str="Mr. Blue has a blue house";
document.write(str.search(/blue/i));
// 输出:4
//正则表达式修饰符:"i"执行对大小写不敏感的匹配。



includes() 方法

includes() 方法用于判断字符串是否包含指定的子字符串。

如果找到匹配的字符串则返回 true,否则返回 false。

注意: includes() 方法区分大小写。

参数:

searchvalue: 必需,要查找的字符串。

start: 可选,设置从那个位置开始查找,默认为 0。

// 从第 12 个索引位置开始查找字符串
var str = "Hello world, welcome to the Runoob.";
var n = str.includes("world", 12);
document.write(n);
// 输出:false



replace() 方法

replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

该方法不会改变原始字符串,而是返回一个新的字符串。

参数:

searchvalue: 必须。规定子字符串或要替换的模式的 RegExp对象。请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。

newvalue: 必需。一个字符串值。规定了替换文本或生成替换文本的函数。

// 执行一个全局替换
var str = "Mr Blue has a blue house and a blue car";
var n = str.replace(/blue/g, "red");
document.write(n);
// 输出: Mr Blue has a red house and a red car
//正则表达式修饰符:"g"执行全局匹配
// 执行一个全局替换, 忽略大小写
var str="Mr Blue has a blue house and a blue car";
var n=str.replace(/blue/gi, "red");
// 输出:Mr red has a red house and a red car
//正则表达式修饰符:"i"执行对大小写不敏感的匹配。



slice() 方法

slice(start, end) 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。

使用 start(包含) 和 end(不包含) 参数来指定字符串提取的部分。

参数:

start: 必须。 要抽取的片断的起始下标,第一个字符位置为 0。如果为负数,则从尾部开始截取。slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。

end: 可选。 要截取的片段结尾的下标。若未指定此参数,则要提取的子串包括 start到原字符串结尾的字符串。如果该参数是负数,则从字符串的尾部开始算起的位置,-1 指字符串的最后一个字符的位置,-2 指倒数第二个字符,以此类推。

// 提取所有字符串
var str="Hello world!";
var n=str.slice(0);
document.write(n);
// 输出:Hello world!
// 从字符串的第3个位置提取字符串片段
var str="Hello world!";
var n=str.slice(3);
document.write(n);
// 输出:lo world!
// 从字符串的第3个位置到第8个位置之间的字符串片段
var str="Hello world!";
var n=str.slice(3,8);
document.write(n);
// 输出:lo wo
// 从字符串的第3个位置到倒数第2个位置之间的字符串片段
var str="Hello world!";
var n=str.slice(3,-2);
document.write(n);
// 输出:lo worl



split() 方法

split() 方法用于把一个字符串分割成字符串数组。

注意: split() 方法不改变原始字符串,而是返回一个新字符串数组。

参数:

separator; 可选。字符串或正则表达式,从该参数指定的地方分割 stringObject。如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。

limit: 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

var str="How are you doing today?";

//以空格为分解,划分数组
document.write(str.split(" ") + "<br />");
//每个字符都被划分
document.write(str.split("") + "<br />");
//以空格为分解,划分数组,只返回三个数组
document.write(str.split(" ",3));

/*
输出:
How,are,you,doing,today?
H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,?
How,are,you
*/



substr() 方法

substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。并返回一个新的字符串。

参数:

start: 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。

length: 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。

var str = "Hello world!";
document.write(str.substr(3));
document.write(str.substr(3, 7));
/*
输出: 
lo world!
lo worl
*/



substring()

substring() 方法用于提取字符串中介于两个指定下标之间的字符。返回一个新的字符串。

参数:

start: 必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。

stop: 可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多
1。如果省略该参数,那么返回的子串会一直到字符串的结尾。

var str="Hello world!";
document.write(str.substring(3));
//输出:lo world!



toLowerCase()

toLowerCase() 方法用于把字符串转换为小写。返回一个新的字符串。

var str="Hello World!";
document.write(str.toLowerCase());
//输出:hello world!



toUpperCase()

toUpperCase() 方法用于把字符串转换为大写。返回一个新的字符串。

var str="Hello World!";
document.write(str.toUpperCase());
输出:HELLO WORLD!