Javascript 字符串常用操作方法

  1、字符串转换

/* 你可以将一个数字,布尔值,或一个字符串对象转换为字符串 */
var num= 18;
var str1 = num.toString(); //'18'
var str2 = String(num); //'18'
var str3 = ''+num; //'18'

  2、字符串分隔

/* split('分隔符', num):将一个字符串分割成为多个字符串并返回一个数组,第二个参数为返回的字符串数组长度 */
var str = 'I,love,javascript';
var strArr1 = str.split(','); //['I', 'love', 'javascript']
var strArr2 = str.split(',', 2); //['I', 'love']

  3、查找字符串

/* indexOf(searchvalue,fromindex):用来检索指定的字符串值在字符串中首次出现的位置。
它可以接收两个参数,searchvalue表示要查找的子字符串,fromindex表示查找的开始位置,省略的话则从开始位置进行检索 */
var str = 'I,love,javascript,javascript';
console.log(str.indexOf('ja')); //7
console.log(str.indexOf('ja', 10)); //18 /* lastIndexOf():语法与indexOf()类似,它返回的是一个指定的子字符串值最后出现的位置,其检索顺序是从后向前 */
var str = 'I,love,javascript,javascript';
console.log(str.lastIndexOf('ja')); //18
console.log(str.lastIndexOf('ja', 10)); //7
/* 如果没有找到对应的值,则返回-1 */

  4、字符串替换

/* replace():第一个参数是你要替换的子字符串(或正则表达式),第二个参数是新的子串。
这只会替换匹配的子字符串的第一个实例, 要更换匹配的子字符串的所有实例,使用正则表达式的全局标志 */
var str1 = 'I like javascript, I like javascript';
var str2 = str1.replace('like', 'love'); //'I love javascript, I like javascript'
var str3 = str1.replace(/like/g, 'love'); //'I love javascript, I love javascript'

  5、查找指定位置的字符

/* charAt(): 查找指定位置的字符 */
var str1 = 'I like javascript';
var str2 = str1.charAt(7); // 'j' /* charCodeAt() 方法可返回指定位置的字符的 Unicode 编码 */
var str1 = 'I like javascript';
var str2 = str1.charCodeAt(7); // 106

  6、连接多个字符串

/* 大多数时候连接字符串会使用加法运算符 (+),但也可以使用 concat()方法,连接的字符串会一次呈现 */
var str1 = 'javascript ';
var str2 = 'html ';
var str3 = 'css';
var str4 = str1+str2+str3; //'javascript html css'
var str5 = str1.concat(str2,str3); //'javascript html css'

  7、提取字符串组成新的字符串

/* substring(start,end):它可以接收两个参数(参数不能为负值),分别是要截取的开始位置和结束位置,它将返回一个新的字符串,其内容是从start处到end-1处的所有字符 */
var str = 'abcdefg';
console.log(str.substring(1, 4)); //返回bcd
console.log(str.substring(1)); //返回bcdefg
console.log(str.substring(-1)); //返回abcdefg,传入负值时会视为0 /* slice(start,end):与substring()类似,区别在于,slice()中的参数可以为负值,如果参数是负数,则该参数规定的是从字符串的尾部开始算起的位置 */
var str = 'abcdefg';
console.log(str.slice(1, 4)); //返回bcd
console.log(str.slice(-3, -1)); //返回ef
console.log(str.slice(1, -1)); //返回bcdef
console.log(str.slice(-1, -3)); //返回空字符串,若传入的参数有问题,则返回空 /* substr(start,length):截取从start位置开始的长度为length的字符串,没有指定length,则直接截取到尾部 */
var str = 'abcdefg';
console.log(str.substr(1, 3)); //返回bcd
console.log(str.substr(2)); //返回cdefg
console.log(str.substr(-2, 4)); //返回fg,目标长度较大的话,以实际截取的长度为准

  8、大小写转换方法

  toLocaleLowerCase()和toLocaleUpperCase()方法则是针对特定地区的实现

  toLowerCase()和toUpperCase()是两个经典的方法  //但少数语言(如土耳其语言)会为Unicode大小写转换应用特殊的规则,则需要使用上面的方法

  9、字符串匹配

/* match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配 */
var myString = "How much wood could a wood chuck chuck";
var myPattern = /.ood/;
var myResult = myString.match(myPattern); // ["wood"]
var patternLocation = myResult.index; // 9
var originalString = myResult.input // "How much wood could a wood chuck chuck" /* exec() 方法在调用非全局的 RegExp 对象时与match()返回一样
在调用全局的 RegExp 对象时可以通过反复调用 exec() 方法来遍历字符串中的所有匹配文本 */
var myString = "How much wood could a wood chuck chuck";
var myPattern = /.huck/;
var myResult = myPattern.exec(myString); // ["chuck"]
var patternLocation = myResult.index; // 27
var originalString = myResult.input // "How much wood could a wood chuck chuck" /* test() 方法用于检测一个字符串是否匹配某个模式,有返回true,否则返回false */
var myString = "&type=test&id=18";
var myPattern = new RegExp('type');
console.log(myPattern.test(myString)); // true
var myPattern = new RegExp('web');
console.log(myPattern.test(myString)); // false /* search() 方法,它接受一个正则表达式作为唯一的参数,不执行全局匹配,它将忽略标志 g,并返回模式第一次出现的位置,否则返回 -1 */
var myString = "Assume";
var patternLocation = myString.search(/ume/); // 3

  

上一篇:【转】 iOS开发UI篇—控制器的View的创建


下一篇:ZigBee协议栈中AES加密算法