1、字符串方法正则表达式
一、字符串转换:
将一个值转换成一个字符串有两种方法,一是使用 toString() 方法,二是使用转型函数 String()。
(1)、大多值都有toString()方法,null和undefined是没有的。数组
(2)、对于字符串型的值也可使用toString()方法,它会返回该字符串的一个副本。函数
(3)、toString()方法能够传递一个参数,表示数值的基数(进制)。编码
var t = 8; t.toString(2); //1000
默认状况下 参数是10。要说明的是对于非数值类型(boolean,string等)设置toString()的参数是无效的code
var t ="8"; t.toString(2); //8, 返回字符串的副本;
(4)、任何值均可以使用String()方法。它的过程是这样的regexp
首先,若是值有toString()方法,那么则使用该方法(无参数)。对象
其次,那就是该值没有toString()方法,那就是 null 返回 "null",undefined返回"undefined";
字符串
var a=null; String(a); //"null"
二、字符串分割:
字符串分割,将一个字符串按照某种方式分割成字符串数组,使用 split(separator,howmany) 方法,
第一个参数必需,,为字符串或正则表达式,从该参数指定的地方分割字符串;
第二个参数可选,可指定返回的数组的最大长度input
var myStr = "I,Love,You,Do,you,love,me"; var substrArray = myStr .split(","); // ["I", "Love", "You", "Do", "you", "love", "me"]; var arrayLimited = myStr .split(",", 3); // ["I", "Love", "You"];
三、获取字符串长度
获取字符串长度,直接使用 str.length 属性string
var myStr = "I,Love,You,Do,you,love,me"; var myStrLength = myStr.length; //25
四、查询子字符串
查询子字符串,可使用 indexOf() 和 lastIndexOf() 方法
(1)indexOf():从字符串的第一个字符位置开始查找,找到后返回对应下标,找不到返回 -1 ;
var myStr = "I,Love,you,Do,you,love,me"; var index = myStr.indexOf("Love"); // 2 ,基于0开始,找不到返回-1,区分大小写
(2)lastIndexOf():从字符串的末尾开始查找,找到最后出现指定字符串的位置后返回对应下标,找不到返回 -1 ;
var myStr = "I,Love,you,Do,you,love,me"; var index = myStr.lastIndexOf("you"); // 14 //区分大小写
五、字符串替换
替换字符串,使用 strObj.replace(regexp/substr,replacement) 方法,
第一个参数必需,规定要匹配的正则对象,
第二个参数必需,规定了替换文本或生成替换文本的函数。
var myStr = "I,Love,you,Do,you,love,me"; var replacedStr = myStr.replace(/love/g,"hate");//"I,Love,you,Do,you,hate,me",全局匹配(g)
var myStr = "I,Love,you,Do,you,love,me"; var replacedStr = myStr.replace(/love/g,"hate");//"I,hate,you,Do,you,hate,me",忽略大小写(i)
六、查找给定位置的字符或其字符编码值
想要查找给定位置的字符,你可使用以下函数:
var myStr = "I,love,you,Do,you,love,me"; var theChar = myStr.charAt(8);// "o",一样从0开始
一样,它的一个兄弟函数就是查找对应位置的字符编码值,如:
var myStr = "I,love,you,Do,you,love,me"; var theChar = myStr.charCodeAt(8); //111
七、字符串拼接
字符串链接操做能够简单到用一个加法运算符搞定,如:
var str1 = "I,love,you!"; var str2 = "Do,you,love,me?"; var str = str1 + str2 + "Yes!";//"I,love,you!Do,you,love,me?Yes!"
使用js自带 strObj1.concat(strObj2) 方法也可实现
var str1 = "I,love,you!"; var str2 = "Do,you,love,me?"; var str = str1.concat(str2);//"I,love,you!Do,you,love,me?"
八、字符串切割和提取
有三种方法可实现,分别为:
(1)、strObj.slice(satrt,end):第一个参数必需,要提取字符串的起始下标。若是为负数的话,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推,第二个参数可选,与strObj.substring()相似。
var myStr = "I,love,you,Do,you,love,me"; var subStr = myStr.slice(1,5);//",lov"
(2)、strObj.substring(start,end):第一个参数必需,不能为负数,提取字符串初始位置,第二个参数可选,strObj[end]不提取。
var myStr = "I,love,you,Do,you,love,me"; var subStr = myStr.substring(1,5); //",lov";
(3)、strObj,substr(start,length):第一个参数必需,提取字符串的初始位置,第二个参数可选,表示提取字符串长度,不写的话默认提取到字符串末尾。
var myStr = "I,love,you,Do,you,love,me"; var subStr = myStr.substr(1,5); //",love"
九、字符串大小写转换
经常使用的转换为大写或者小写字符串函数,以下:
var myStr = "I,love,you,Do,you,love,me"; var lowCaseStr = myStr.toLowerCase();//"i,love,you,do,you,love,me"; var upCaseStr = myStr.toUpperCase();//"I,LOVE,YOU,DO,YOU,LOVE,ME"
十、字符串匹配
字符串匹配可能须要你对正则表达式有必定的了解,先来看看match()函数:
var myStr = "I,love,you,Do,you,love,me"; var pattern = /love/; var result = myStr.match(pattern);//["love"] console.log(result .index);//2 console.log(result.input );//I,love,you,Do,you,love,me
如你所见,match()函数在字符串上调用,而且接受一个正则的参数。来看看第二个例子,使用exec()函数:
var myStr = "I,love,you,Do,you,love,me"; var pattern = /love/; var result = pattern .exec(myStr);//["love"] console.log(result .index);//2 console.log(result.input );//I,love,you,Do,you,love,me
简单吧,仅仅是把正则和字符串换了个位置,即exec()函数是在正则上调用,传递字符串的参数。对于上面两个 方法,匹配的结果都是返回第一个匹配成功的字符串,若是匹配失败则返回null. 再来看一个相似的方法search(),如:
var myStr = "I,love,you,Do,you,love,me"; var pattern = /love/; var result = myStr.search(pattern);//2
仅返回查到的匹配的下标,若是匹配失败则返回-1.