对字符的各种操作有时候总会忘记几个,这次做一下整理:
length – 返回字符串的长度
- ‘abcd’.length; //4
Math.ceil(num) – 向上取整,不管小数点后面是多少,哪怕.00001,也会向上进一位。
- Math.ceil(25.9); //26
- Math.ceil(25.5); //26
- Math.ceil(25.1); //26
Math.floor(num) – 向下取整,不管小数点后面是多少,哪怕.99999,也会向下减一位。
- Math.floor(25.9); //25
- Math.floor(25.5); //25
- Math.floor(25.1); //25
Math.round(num) – 四舍五入。
- Math.round(25.9); //26
- Math.round(25.5); //26
- Math.round(25.1); //25
Math.abs(num) – 返回数的绝对值。
- Math.abs(-10); // 10
- Math.abs(10); // 10
- Math.abs(-10.5); // 10.5
Math.max(n,n1,n2) – 可返回指定的数中最大的那个数[在 ECMASCript v3 之前,该方法只有两个参数]。
- Math.max(1,32,4,5,6,7,87) //87
Math.min(n,n1,n2) – 可返回指定的数中最小的那个数[在 ECMASCript v3 之前,该方法只有两个参数]。
- Math.max(1,32,4,5,6,7,87) //1
Math.random() – 随机数,如返回指定数字之间的随机数,公式是:Math.random()*(y-x) + x
- //返回0-1之间的随机数,默认带有小数的
- Math.random();
- //下面只返回0和1的随机数,记住是和,不是0就是1
- Math.round( Math.random() )
- //5-10的随机数
- Math.round( Math.random()*5 + 5 )
- //10-20的随机数
- Math.round( Math.random()*10 + 10 )
- //0-100的随机数
- Math.round( Math.random()*100 )
Math还有很多方法,其它的不常用,这里就不做介绍了,具体可查看w3c。
charAt() – 返回指定位置的字符。
- ‘abcd’.charAt(0); //a
- ‘abcd’.charAt(1); //b
- ‘abcd’.charAt(2); //c
charCodeAt() – 获取指定位置字符的编码(unicodo编码)。
- ‘abcd’.charCodeAt(1) //98
- ‘abcd’.charCodeAt(2) //99
fromCharCode() – 可接受一个或者多个指定的 Unicode 值,然后返回一个字符串。
- String.fromCharCode(97) //a
- String.fromCharCode(97,98,99,100,101,102) //abcdef
indexOf() – 返回字符串中一个子串第一处出现的索引。如果没有匹配项,返回 -1 。
- ‘abcd’.indexOf(‘b’) //1
- ‘abcd’.indexOf(‘g’) //-1
substring() – 如果是一个参数,返回下标从start处开始到结束的字符;如果是两个参数,则提取字符串从start到end-1之间的字符。
- ‘abcd’.substring(3) //d
- ‘abcd’.substring(0,3) //abc
- ‘abcd’.substring(1,2) //b
substr() – 如果是一个参数,返回下标从start处开始到结束的字符;如果是两个参数,则提取字符串从start位置开始截取end位。
- ‘abcd’.substr(3) //d
- ‘abcd’.substr(0,2) //ab
- ‘abcd’.substr(1,2) //bc
slice() – 如果是一个参数,返回下标从start处开始到结束的字符,如果是负数,则从后面开始取值几位字符;如果是两个参数,则提取字符串从start到end-1之间的字符,如果第一个是负数,那么第二个不能小于第一个字符的位置,这个比较绕。具体看下面的代码。
- ‘abcd’.slice(-1) //d
- ‘abcd’.slice(-2) //cd
- ‘abcd’.slice(3) //d
- ‘abcd’.slice(0,2) //ab
- ‘abcd’.slice(1,2) //b
- //此时-2,选取到c的位置,后面的2,根据规则,位置应该是2-1,也就是b的位置,所以返回的是空
- ‘abcd’.slice(-2,2) //
- //此时-2,选取到c的位置,后面的3,根据规则,位置应该是3-1,也就是c的位置,所以返回为c
- ‘abcd’.slice(-2,3) //c
replace() – 字符串替换。
- //把a替换成x
- ‘abcd’.replace(‘a’,’x’) //xbcd
- //只能替换第一次匹配的内容,后面的不做匹配
- ‘abacad’.replace(‘a’,’x’) //xbacad
- //如果要全部匹配替换,需要配合正则
- ‘abacad’.replace(/a/gi,’x’) //xbxcxd
split() – 字符串分割成数组。如果一个参数,则根据参数来分割,如果两个,则根据第二个参数,取几个
- //如果是一个空字符,则把字符串每一个都分割开
- ‘abcd’.split(“”); //”a”, “b”, “c”, “d”
- //如果是一个空格,则根据空格分割,如果没有空格,直接输出原字符串
- ‘ab cd’.split(” “); //”ab”, “cd”
- //如果是一个空格,则根据空格分割,如果没有空格,直接输出原字符串
- ‘abacad’.split(“a”); //””, “b”, “c”, “d”
- ‘abacad’.split(“a”,2); //””, “b”
toUpperCase() – 将小写字符串转换成大写
- ‘abcd’.toUpperCase(“”); //ABCD
toUpperCase() – 将大写字符串转换成小写
- ‘ABCD’.toUpperCase(“”); //abcd
parseInt() – 字符串转成数字,遇到非数字既停止,第一个字符不能被转换为数字,返回NaN
- parseInt(‘123abc’) //123
- parseInt(‘abc123’) //NaN
parseFloat() – 字符串转成小数,遇到非数字既停止,第一个字符不能被转换为数字,返回NaN
- parseInt(’10’) //10
- parseInt(’10abc’) //10
- parseInt(‘10.256’) //10.256
- parseInt(‘10.25W6’) //10.25
- parseInt(‘W60’) //NaN