理顺 JavaScript (5) - 符合 ECMAScript 标准的字符串函数

2021/4/29 22:26:34

本文主要是介绍理顺 JavaScript (5) - 符合 ECMAScript 标准的字符串函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

   理顺 JavaScript (5) - 符合 ECMAScript 标准的字符串函数    


这包括:


charAt
charCodeAt
concat
fromCharCode  //String 类中的唯一静态函数
indexOf
lastIndexOf
length        //String 类中的唯一的属性
localeCompare
slice
substr
substring
toUpperCase
toLowerCase
toLocaleUpperCase
toLocaleLowerCase
split
toString
valueOf

//下面三个函数和正则表达式密切相关, 到正则再说:
match
replace
search

//下面六个编码解码的函数是全局函数, 不属于 String 类:
escape
unescape
encodeURI
decodeURI
encodeURIComponent
decodeURIComponent

//ECMAScript 标准不再支持的字符串函数:
anchor、big、blink、bold、fixed、fontcolor、fontsize、italics、link、small、strike、sub、sup


charAt : 返回第几个字符


var str = 'ABCD';
alert(str.charAt(2)); //C

var str = new String('万一的 Delphi 博客');
alert(str.charAt(2)); //的


charCodeAt : 返回第几个字符的编码


var str = 'ABCD';
alert(str.charCodeAt(2)); //67

var str = new String('万一的 Delphi 博客');
alert(str.charCodeAt(2)); //30340


concat : 连接字符串


var s1, s2, s3, str;
s1 = '万一的'; s2 = ' Delphi '; s3 = '博客';
str = '这里是: ';
str = str.concat(s1, s2, s3);
alert(str); //这里是: 万一的 Delphi 博客


fromCharCode : 从字符编码创建一个字符串; 注意这是 String 类的静态方法, 不被对象支持, 要通过 String 类名调用; String 的静态方法只有这一个, 其他都不能这样使用.


var str;
str = String.fromCharCode(65, 66, 67, 68);
alert(str); //ABCD 

str = String.fromCharCode(19975);
alert(str); //万

str = String.fromCharCode(19975,19968,30340,32,68,101,108,112,104,105,32,21338,23458);
alert(str); //万一的 Delphi 博客


indexOf : 返回子串首次出现的位置, 找不到返回 -1


var str = '万一的 Delphi 博客';
alert(str.indexOf('万'));     //0
alert(str.indexOf('D'));      //4
alert(str.indexOf('Delphi')); //4
alert(str.indexOf('delphi')); //-1


lastIndexOf : 返回子串最后出现的位置(从后向前找), 找不到返回 -1


var str = 'ABCABC';
alert(str.lastIndexOf('A'));   //3
alert(str.lastIndexOf('C'));   //5
alert(str.lastIndexOf('CAB')); //2
alert(str.lastIndexOf('cab')); //-1


length : 返回字符串长度, 它是 String 类中的唯一属性, 还是只读属性


var str = 'AB'; 
alert(str.length); //2
str = '万一'; 
alert(str.length); //2

alert('万一的 Delphi 博客'.length); //13


localeCompare : 比较字符串


var s1 = 'A', s2 = 'D';
alert(s1.localeCompare(s2)); //-1
alert(s2.localeCompare(s1)); //1

alert('Delphi'.localeCompare('Delphi')); //0
alert('Delphi'.localeCompare('delphi')); //1


slice : 截取字符串; 参数为负就倒数; 第二个参数默认到尾


var str = 'ABCDEFG';
alert(str.slice(1, 4));   //BCD
alert(str.slice(1));      //BCDEFG
alert(str.slice(1, -1));  //BCDEF
alert(str.slice(-3, -1)); //EF


substr、substring : 和 slice 类似, 它们都是提取字符串;
substr(起点位置, 长度);
substring(起点位置, 终点位置);
substring 和 slice 更相似, 但 substring 不使用负数参数.


var str = '123456', s1, s2;

s1 = str.substr(1, 4);
s2 = str.substring(1, 4);
alert(s1 + '; ' + s2);    //2345; 234

s1 = str.substr(4, 1);
s2 = str.substring(4, 1);
alert(s1 + '; ' + s2);    //5; 234

/*和 slice 不一样, substr 与 substring 最好都不用负数*/
s1 = str.substr(-2, 2);    //同 substr(0, 2)
s2 = str.substring(-2, 2); //同 substring(0, 2)
alert(s1 + '; ' + s2);     //12; 12

s1 = str.substr(0, 2);
s2 = str.substring(0, 2);
alert(s1 + '; ' + s2);     //12; 12

s1 = str.substr(1, 2);
s2 = str.substring(1, 2);
alert(s1 + '; ' + s2);     //23; 2

/*如果省略了第二个参数, substr 与 substring 是一样的*/
s1 = str.substr(2);
s2 = str.substring(2);
alert(s1 + '; ' + s2);     //3456; 3456


toUpperCase、toLowerCase、toLocaleUpperCase、toLocaleLowerCase : 大小写转换


var str = 'Delphi';
alert(str.toUpperCase());       //DELPHI
alert(str.toLowerCase());       //delphi
alert(str.toLocaleUpperCase()); //DELPHI
alert(str.toLocaleLowerCase()); //delphi


split : 分割字符串


var str, arr;
str = 'Delphi/C++/JavaScript'
arr = str.split('/'); //将返回 ['Delphi', 'C++', 'JavaScript']
alert(arr[0]); //Delphi

/*可以限制返回数组的维数*/
arr = str.split('/', 2); //将返回 ['Delphi', 'C++']
alert(arr[1]); //C++
alert(arr[2]); //undefined (表示不存在)

/*用空格分割*/
str = 'Delphi 2009';
arr = str.split(' '); //将返回 ['Delphi', '2009']
alert(arr[1]); //2009

/*假如用空串分割*/
str = 'Delphi';
arr = str.split(''); //将返回 ['D', 'e', 'l', 'p', 'h', 'i']
alert(arr[1]); //e

/*最有意思的是它可以用正则表达式分割, 其实上个例子就是正则的理念了, 这会专题学习*/
str = 'A1B2C3D4';
arr = str.split(/\d/); //将返回 ['A', 'B', 'C', 'D']
alert(arr[1]); //B


toString、valueOf : 这两个函数用于字符串时还是返回字符串本身, 没有实用价值


var str = 'Delphi';
alert(str.toString()); //Delphi
alert(str.valueOf());  //Delphi


escape、unescape : 编码、解码; 它们(包括之后的函数)是全局函数, 不属于 String 类


var str;
str = escape('万一的 Delphi 博客');
alert(str);          //%u4E07%u4E00%u7684%20Delphi%20%u535A%u5BA2
str = unescape(str);
alert(str);          //万一的 Delphi 博客


encodeURI、decodeURI、encodeURIComponent、decodeURIComponent : 选择编码、解码;
encodeURI 对非 ASCII 字符编码;
encodeURIComponent 和 encodeURI 类似, 但也给 ASCII 中的特殊字符编码.


var str = 'http://del.cnblogs.com?x=万一';

str = encodeURI(str);
alert(str);  //http://del.cnblogs.com?x=%E4%B8%87%E4%B8%80
str = decodeURI(str);
alert(str);  //http://del.cnblogs.com?x=万一

str = encodeURIComponent(str);
alert(str); //http%3A%2F%2Fdel.cnblogs.com%3Fx%3D%E4%B8%87%E4%B8%80
str = decodeURIComponent(str);
alert(str); //http://del.cnblogs.com?x=万一





这篇关于理顺 JavaScript (5) - 符合 ECMAScript 标准的字符串函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程