String对象属性和方法参考

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaoermingn/article/details/53006130

快速查找:ctrl+f

创建String对象

  • 通过new关键字:var str=new String(“some text”);
  • 字面量:var str=”some text”;

String和string

javascript中严格区分大小写,所以String和string是完全不同的两个东西

  • String是一个构造函数
typeof String;  //function
  • string是一个数据类型
typeof string;  //undefined,因为把string当做一个变量名了
var str="abc";
typeof str;  //string

注:以下str表示一个字符串,String表示String构造函数

属性

  • str.length 返回字符串的长度,以字符为单位
var str1="abc";
var str2="什么鬼";
str1.length;  //3
str2.length;  //3
  • String.prototype 在对象的原型上添加新的属性或方法
String.prototype.text="abc";  //在原型上添加新的属性
String.prototype.getText=function(){
    return "hello world";
}
var str="";
str.text;  //abc
str.getText();  //hello world

方法

1.将HTML格式化标记应用于字符串

  • str.anchor(anchorname) 创建一个超文本的HTML锚标记
var str="This is a string literal";
document.write(str.anchor('myanchor'));  

IE8以下效果图,IE8以下不管你的a有没有shape属性,浏览器都会自动加上这个属性,但本身又不支持这个属性,其他浏览器没有,h5中也不再使用这个属性:
这里写图片描述

  • str.big() 创建一个HTML的big大字体标签
var str="This is a string literal";
document.write(str.big());
  • str.blink() 创建一个HTML的blink闪烁字体标签(不再支持)
var str="This is a string literal";
document.write(str.blink());
  • str.bold() 创建一个HTML的b粗体标签
var str="This is a string literal";
document.write(str.bold());
  • str.fixed 创建一个HTML的tt等宽字体标签
var str="This is a string literal";
document.write(str.fixed());
  • str.fontcolor(color) 创建一个font标签并指定color属性
var str="This is a string literal";
document.write(str.fontcolor('blue'));
//<font color="blue">This is a string literal</font>
  • str.fontsize(num) 创建一个font标签并指定size属性,字体大小是一个从1~7的值
var str="This is a string literal";
document.write(str.fontsize(7));
//<font size="7">This is a string literal</font>
  • str.italics() 创建一个HTML的i斜体标签
var str="This is a string literal";
document.write(str.italics());
  • str.link(href) 创建一个HTML的a超链接标签,并指定href
var str="This is a string literal";
document.write(str.link('http://www.aaa.com'));
  • str.small() 创建一个HTML的small小字体标签
var str="This is a string literal";
document.write(str.small());
  • str.strike() 创建一个HTML的strike删除线标签
var str="This is a string literal";
document.write(str.strike());
  • str.sub() 创建一个HTML的sub上标标签
var str="This is a string literal";
document.write(str.sub());
  • str.sup() 创建一个HTML的sup下标标签
var str="This is a string literal";
document.write(str.sup());

2.使用字符串

  • str.charAt(n) 返回指定索引位置上的一个Unicode字符,string类型
var str="abcd";
str.charAt(1);  //b
  • str.charCodeAt(n) 返回指定索引位置上字符的Unicode编码值,number类型
    (对于Mozilla平台,在低于Javascript1.3的版本中,charCodeAt()方法返回的是在ISO-Latin-1字符集中的值)
var str="abcd";
str.charCodeAt(1);  //98
  • str1.concat(str2[,str3[,…]]) 连接多个字符串
    (使用+运算连接多个字符串时性能会更好些)
var str1="abcd";
var str2="efgh";
str1.concat(str2);  //abcdefgh
  • String.fromCharCode([code1[,code2[,…]]]) 根据一个或多个Unicode值返回一个字符串
var str=String.fromCharCode(112,108,97);
str;  //pla
  • str.indexOf(searchstr[,startindex]) 返回所查询的子字符串在目标字符串中第一次出现的索引位置,如果没有找到匹配的子字符串,则返回-1。
var str="abcdefg";
var searchstr="de";
str.indexOf(searchstr);  //3
str.indexOf(searchstr,4);  //-1,从第4个索引位置开始查找
  • str.lastIndexOf(searchstr[,startindex]) 返回所查询的子字符串在目标字符串中最后一次出现的索引位置,如果没有找到匹配的子字符串,则返回-1。从右往左查找,返回第一个查到的位置,查找时只查找指定startindex的左边
var str="abcdefg";
var searchstr="de";
str.lastIndexOf(searchstr);  //3
str.lastIndexOf(searchstr,4);  //3
str.lastIndexOf('g',4);  //-1
  • str1.localeCompare(str2) 使用底层操作系统提供的排序规则比较两个字符串
var str1="我";
var str2="你";
str1.localeCompare(str2);  //1
str2.localeCompare(str1);  //-1
str1.localeCompare(str1);  //0
  • str.slice(start[,end]) 返回字符串中的一个指定开始位置指定结束位置子字符串,如果没有指定结束位置,该方法将返回从开始位置到整个字符串结束的全部子字符串,左闭右开区间
var str="abcdefg";
str.slice(3);  //defg
str.slice(3,5);  //de
str.slice(3,100);  //defg
str.slice(3,3);  //"",返回空字符串
str.slice(5,3);  //"",返回空字符串,只要没找到就会返回空字符串
str.slice(3,-1);  //def,可以用负数代表倒着数,-1相当于倒数第一个
str.slice(-1,3);  //abc
  • str.substring(start[,end]) 返回字符串中的一个指定开始位置指定结束位置子字符串,如果没有指定结束位置,该方法将返回从开始位置到整个字符串结束的全部子字符串,左闭右开区间。
var str="abcdefg";
str.substring(3);  //defg
str.substring(3,5);  //de
str.substring(3,100);  //defg
str.substring(3,3);  //"",返回空字符串
str.substring(5,3);  //de
str.substring(3,-1);  //abc
str.substring(-1,3);  //abc
/*和slice不同的是,substring会把两个数中较小的作为开始,不管两个数的先后位置*/
  • str.substr(start[,length] 返回字符串中的一个指定开始位置开始指定数量子字符串,如果没有指定结束位置,该方法将返回从开始位置到整个字符串结束的全部子字符串
var str="abcdefg";
str.substr(3);  //defg
str.substr(3,2);  //de
str.substr(3,100);  //defg
str.substr(3,-1);  //"",没找到时返回空字符串
str.substr(-1,3);  //g,用负数代表倒着数,-1相当于从倒数第一个开始
  • str.toUpperCase() 将字符串每个字符都改为大写
  • str.toLocaleUpperCase 在用户当前区域设置下,将字符串每个字符都大写,只有几种语言(如土耳其语)具有地方特有的大小写映射,一般返回值和toUpperCase()一样
var str="abcdefg";
str.toUpperCase();  //ABCDEFG
str.toLocaleUpperCase();  //ABCDEFG
  • str.toLowerCase() 将字符串每个字符都改为小写
  • str.toLocaleLowerCase 在用户当前区域设置下,将字符串每个字符都小写,只有几种语言(如土耳其语)具有地方特有的大小写映射,一般返回值和toLowerCase一样
var str="aBcDeFg";
str.toLowerCase();  //abcdefg
str.toLocaleLowerCase();  //abcdefg
  • str.toString() 返回对象最有用的文本值
  • str.valueOf() 返回对象基本值
    两者在非string类型的对象使用时会有差别,这里先不提
var str="abcdefg";
str.toString();  //abcdefg
str.valueOf();  //abcdefg
  • str.trim() 清除两边空格
var str=" abc ";
str;//" abc "
str.trim();//"abc"

3.能用于匹配正则的方法

  • str.match(regexp) 返回字符串上查找匹配正则表达式的结果数组
var str="this is a test";
var reg=/is/g;
str.match(reg);  //["is","is"]
str.match("is");  //["is"],也可以查找有没有指定字符串
str.match("b");  //null
  • str.replace(regexp,replacestr) 将匹配结果用指定字符替换
var str="I'm a Good Boy";
var replacestr="i";
var reg=/[A-Z]/g;
str.replace(reg,replacestr);  //i'm a iood ioy
str.replace('a','b');  //I'm b Good Boy
str.replace('abc','123');  //I'm a Good Boy,没有匹配项也不报错
  • str.search(regexp) 返回第一个匹配子字符串的字符位置,此时正则的全局属性g无效,没找到返回-1
var str="I'm a Good Girl";
var reg=/oo/;
str.search(reg);  //7
str.search('a');  //4
str.search('k');  //-1
str.search();  //0
  • str.split(regexp[,limit]) 根据匹配的子字符串,将字符串拆分为一个数组
var str="I have a pen,I have a apple,apple-pen";
var reg=/pen/g;
str.split(reg); /*["I have a ", ",I have a apple,apple-", ""]*/
str.split("");  //将字符串分割为字符数组
str.split(" ");  //根据空格来分割
str.split("",3);  //["I", " ", "h"],限制查找次数

猜你喜欢

转载自blog.csdn.net/xiaoermingn/article/details/53006130