zoukankan      html  css  js  c++  java
  • 理顺 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=万一

  • 相关阅读:
    csu1022 菜鸟和大牛 dp
    POJ 1001 Exponentiation
    KMPmatch 字符串模式匹配
    UVaOJ458 The Decoder
    UVaOJ 10300 Ecological Premium
    MLE: 找出出现偶数次的那个数
    csu 1207: 镇管的难题
    csu 1079
    UVaOj 494 Kindergarten Counting Game
    轻松掌握Ajax.net系列教程七:使用ModalPopupExtender
  • 原文地址:https://www.cnblogs.com/del/p/1398792.html
Copyright © 2011-2022 走看看