字符串方法
1.charAt
返回指定位置的字符
var str = "HELLO WORLD";
var n = str.charAt(2) // L
2.charCodeAt
返回字符串第一个字符的 Unicode 编码:
var str = "HELLO WORLD";
var n = str.charCodeAt(0); // 72
3.concat
var str1 = "Hello ";
var str2 = "world!";
var n = str1.concat(str2); // Hello world!
4.indexOf、lastIndexOf
注意:两种方法都区分大小写,都可接收两个参数。
1)indexOf()
返回某个指定的字符串值在字符串中首次出现的位置,如果没有找到匹配的字符串则返回 -1。
var str="Hello world, welcome to the universe.";
var n=str.indexOf("welcome"); // 13
在字符串第五个位置开始查找字符 “e” 第一次出现的位置:
var str="Hello world, welcome to the universe.";
var n=str.indexOf("e",5);
2)lastIndexOf
返回一个指定的字符串值最后出现的位置,如果指定第二个参数 start,则在一个字符串中的指定位置从后向前搜索。
var str="I am from runoob,welcome to runoob site.";
var n=str.lastIndexOf("runoob"); // 字符串中有两个runoob,用了 lastIndexOf 则取的是第二个
5.includes
注意: includes() 方法区分大小写。
var str = "Hello world, welcome to the Runoob。";
var n = str.includes("world"); // true
6.match
在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
例1.判断是否微信浏览器:
function is_weixn(){
var ua = navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i)=="micromessenger") {
return true;
} else {
return false;
}
}
例2.全局查找字符串 “ain”,且不区分大小写:
var str="The rain in SPAIN stays mainly in the plain";
var n=str.match(/ain/gi);
7.repeat
字符串复制指定次数
var str = "Runoob";
str.repeat(2); // RunoobRunoob
8.replace
在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
例1.执行一次替换
var str="Visit Microsoft! Visit Microsoft!";
var n=str.replace("Microsoft","Runoob"); // Visit Runoob!Visit Microsoft
例2.全局替换(区别大小写)
var str="Mr Blue has a blue house and a blue car";
var n=str.replace(/blue/g,"red"); // Mr Blue has a red house and a red car
例3.全局替换(不区分大小写)
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
9.search
返回某个指定的字符串值在字符串中首次出现的位置,如果没有找到匹配的字符串则返回 -1。
语法:string.search(searchvalue)
注意:
1.search方法和indexOf的区别:可以根据正则表达式查找指定字符串(可以忽略大小写,并且不执行全局检索),同时没有可选参数(即设置开始的检索位置)。
2.要执行忽略大小写的操作,加标志 i。
3.search 不执行全局匹配,忽略标志g,它同时忽略 searchvalue 的 lastIndex 属性,总是从字符串的开始进行检索,意味它总是返回 string 的第一个匹配的位置。
4.如果查找具有某些特征的字符串(例如查找以a开头,后面是数字的字符串),必须要使用正则表达式和search()方法。
例1.区别大小写
var str="Mr. Blue has a blue house";
document.write(str.search("blue")); // 15
例2.忽略大小写
var str="Mr. Blue has a blue house";
document.write(str.search(/blue/i)); // 4
10.slice
slice(start, end) 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
start必须,end可选
-1 指字符串的最后一个字符,-2 指倒数第二个字符
例1.从字符串的第3个位置提取字符串片段:
var str="Hello world!";
var n=str.slice(3); // lo world!
例2.提取第3个位置带第8个位置的字符串片段:
var str="Hello world!";
var n=str.slice(3,8); // lo wo
例3.提取最后一个字符:
var str="Hello world!";
var n=str.slice(-1); // !
11.split
split() 方法用于把一个字符串分割成字符串数组。
语法:string.split(separator, limit)
参数 | |
---|---|
separator | 可选。字符串或正则表达式,从该参数指定地方分割 string Object |
limit | 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。 |
例1.把一个字符串分割成字符串数组:
var str="How are you doing today?";
var n=str.split(" "); // How,are,you,doing,today?
例2.分割每个字符,包括空格:
var str="How are you doing today?";
var n=str.split(""); // H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,?
例3.使用 limit 参数:
var str="How are you doing today?";
var n=str.split(" ",3); // How,are,you
例4.使用一个字符作为分隔符:
var str="How are you doing today?";
var n=str.split("o"); // H,w are y,u d,ing t,day?
12.startsWith
用于检测字符串是否以指定的子字符串开始。
语法:string.startsWith(searchvalue, start)
参数 | |
---|---|
searchvalue | 必需,要查找的字符串。 |
start | 可选,查找的开始位置,默认为 0。 |
例1.
var str = "Hello world, welcome to the Runoob.";
var n = str.startsWith("Hello"); // true
例2.
var str = "Hello world, welcome to the Runoob.";
var n = str.startsWith("world", 6); // true
13.substr
在字符串中抽取从 开始 下标开始的指定数目的字符。
语法:string.substr(start,length)
参数 | |
---|---|
start | 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。 |
length | 可选,子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。 |
例1.
var str="Hello world!";
var n=str.substr(2) // llo world!
例2.
var str="Hello world!";
var n=str.substr(2,3) // llo
14.substring
提取字符串中介于两个指定下标之间的字符。
返回的子串包括 开始 处的字符,但不包括 结束 处的字符。
语法:string.substring(from, to)
var str="Hello world!"
var a=str.substring(3) // lo world!
var b=str.substring(3,7) // lo w
15.toLowerCase、toUpperCase
把字符串转换为大、小写。
没有改变原字符串。
var str="Runoob";
var a = str.toLowerCase(); // runoob
var b = str.toUpperCase(); // RUNOOB
15.trim
去除字符串的头尾空格。
var str = " Runoob ";
alert(str.trim()); // Runoob
16.toLocaleLowerCase、toLocaleUpperCase
根据本地主机的语言环境把字符串转换为大、小写。
没有改变原字符串。
注:通常,该方法与 toUpperCase() 和 toLowerCase() 返回的结果相同,只有几种语言(如土耳其语)具有地方特有的大小写映射。
var str = "Runoob";
var a = str.toLocaleLowerCase(); // runoob
var b= str.toLocaleUpperCase(); // Runoob
17.toString
var str = "Runoob";
var res = str.toString(); // Runoob
String HTML 包装方法
var txt = "Hello World!";
document.write("<p>字体变大: " + txt.big() + "</p>");
document.write("<p>字体缩小: " + txt.small() + "</p>");
document.write("<p>字体加粗: " + txt.bold() + "</p>");
document.write("<p>斜体: " + txt.italics() + "</p>");
document.write("<p>固定定位: " + txt.fixed() + "</p>");
document.write("<p>加删除线: " + txt.strike() + "</p>");
document.write("<p>字体颜色: " + txt.fontcolor("green") + "</p>");
document.write("<p>字体大小: " + txt.fontsize(6) + "</p>");
document.write("<p>下标: " + txt.sub() + "</p>");
document.write("<p>上标: " + txt.sup() + "</p>");
document.write("<p>链接: " + txt.link("http://www.w3cschool.cc") + "</p>");
document.write("<p>闪动文本: " + txt.blink() + " (不能用于IE,Chrome,或者Safari)</p>");