JavaScript字符串方法 JavaScript字符串 JavaScript数字 字符串的方法和属性 原始值, 像 "John Doe", 不能拥有属性或方法 (因为它们不是对象). 但对于JavaScript,方法和属性也能应用于原始值,因为执行方法和属性时,JavaScript将原始值作为对象对待。 字符串长度 length属性返回字符串的长度: var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; var sln = txt.length; 让我试试 在字符串中查找字符串 The indexOf() 方法返回字符串中指定文本第一次出现的位置的索引: var str = "Please locate where 'locate' occurs!"; var pos = str.indexOf("locate"); 让我试试 lastIndexOf() 方法返回字符串中指定文本的最后一次出现的索引: var str = "Please locate where 'locate' occurs!"; var pos = str.lastIndexOf("locate"); 让我试试 indexOf()和lastIndexOf() 方法都返回-1,如果文本没有找到. JavaScript的位置从零计数。0是一个字符串中的第一个位置,1个是第二个,2个是第三个 ... 这两种方法都接受第二个参数作为搜索的起始位置. 在字符串中搜索字符串 search() 方法搜索指定值的字符串并返回匹配的位置: var str = "Please locate where 'locate' occurs!"; var pos = str.search("locate"); 让我试试 你注意到没有? 两个方法, indexOf() 和 search(), 是等价的. 它们接受相同的参数,并且返回相同的值. 两个方法是等价的,但是search()方法搜索值更强大。 关于正则表达式一章中,您将了解更多关于强搜索值的知识 提取部分字符串 有3种方法提取字符串的一部分: slice(start, end) substring(start, end) substr(start, length) slice() 方法 slice() 提取字符串的一部分,并在一个新的字符串中返回提取的部分 该方法带2个参数:起始索引(位置)和结束索引(位置)。. 此示例将从位置7到13,提取字符串的一部分: var str = "Apple, Banana, Kiwi"; var res = str.slice(7, 13); 让我试试 如果参数为负数,则从字符串的末端计算该位置. 这个实例从位置-12到-6提取字符串的一部分: var str = "Apple, Banana, Kiwi"; var res = str.slice(-12, -6); 让我试试 如果省略第二个参数,则该方法将提取字符串的剩余部分: var res = str.slice(7); 让我试试 或者,从末端计数: var res = str.slice(-12); 让我试试 负数位置不能在IE8和更早的版本工作. substring() 方法 substring()和slice()相似. 不同的是substring()不能接受负索引. var str = "Apple, Banana, Kiwi"; var res = str.substring(7, 13); 让我试试 如果省略第二个参数, substring() 提取剩余的字符串. substr() 方法 substr() 和 slice()相似. 所不同的是,第二个参数指定提取部分的长度. var str = "Apple, Banana, Kiwi"; var res = str.substr(7, 6); 让我试试 如果第一个参数为负数,则该位置从字符串的末端计数. 第二个参数不能为负值,因为它定义了长度. 如果省略第二个参数 substr() 提取字符串的剩余部分。 替换字符串内容 replace() 方法用指定值替换另一个值: var str = document.getElementById("demo").innerHTML; var txt = str.replace("编程字典","www.codingdict.com"); 让我试试 replace() 方法还可以将正则表达式作为搜索值. 默认情况下,该replace()函数代替只有第一个匹配。若要替换所有匹配,请使用带有G标志的正则表达式(全局匹配): var str = document.getElementById("demo").innerHTML; var txt = str.replace(/编程字典/g,"www.codingdict.com"); 让我试试 replace()方法不会改变被调用的字符串。它返回一个新的字符串 大小写转换 使用toUpperCase(),可以将字符串被转换为大写 : var text1 = "Hello World!"; // String var text2 = text1.toUpperCase(); // text2 is text1 converted to upper 让我试试 可以使用toLowerCase()方法,将字符串转换为小写: var text1 = "Hello World!"; // String var text2 = text1.toLowerCase(); // text2 is text1 converted to lower 让我试试 concat() 方法 concat() 连接两个或多个字符串: var text1 = "Hello"; var text2 = "World"; text3 = text1.concat(" ", text2); 让我试试 concat() 方法可以代替加号运算符. 这两行做法是相同的: var text = "Hello" + " " + "World!"; var text = "Hello".concat(" ", "World!"); 所有字符串方法返回新字符串。他们不修改原来的字符串。也就是说:字符串是不可变的:字符串不能更改,只能替换. 提取字符串中的字符 提取字符串字符有2种安全的方法: charAt(position) charCodeAt(position) charAt() 方法 charAt() 方法返回字符串中指定索引(位置)的字符: var str = "HELLO WORLD"; str.charAt(0); // returns H 让我试试 charCodeAt() 方法 charCodeAt() 方法返回字符串中指定索引处的字符的unicode值: var str = "HELLO WORLD"; str.charCodeAt(0); // returns 72 让我试试 将字符串作为数组访问是不安全的 可能见过这样的代码,将字符串作为数组访问: var str = "HELLO WORLD"; str[0]; // returns H 这是不安全和不可预测的: 它不适用于所有浏览器 (不包括IE5, IE6, IE7) 它使字符串看起来像数组 (但事实并非如此。) str[0] = "H" 不会报错 (但是它不工作) 如果要将字符串作为数组读取,首先将其转换为数组. 将字符串转换为数组 使用split()方法,可以将字符串转换为数组: var txt = "a,b,c,d,e"; // String txt.split(","); // Split on commas txt.split(" "); // Split on spaces txt.split("|"); // Split on pipe 让我试试 如果省略了分隔符, 返回的数组将包含索引中的整个字符串. 如果分隔符是 "", 返回的数组将是单个字符作为数组: var txt = "Hello"; // String txt.split(""); // Split in characters 让我试试 完整的字符串参考 完整的字符串参考, 请访问 完整的字符串参考. 参考包含所有字符串属性和方法的说明和示例. JavaScript字符串 JavaScript数字