JavaScript高级程序设计 ———— String类型

Posted Luckily

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript高级程序设计 ———— String类型相关的知识,希望对你有一定的参考价值。

String 类型提供了很多方法,用于辅助完成对ECMAScript 中字符串的解析和操作。

1、字符方法

1)charAt()

2)charCodeAt()

3)方括号+数字

<script>
    //charAt()  输出索引号对应的单个字符
    //charCodeAt()   输出索引号对应的单个字符的字符编码
    var str = \'lucky\';
    var result = str.charAt(3);
    console.log(result);   //"k"
    var result1 = str.charCodeAt(3);    
    console.log(result1);   // "107"
    var result3 = str[3];
    console.log(result3);   //"k"
</script>

2、字符串操作方法

1)concat()

2)slice()

3)substring()

4)substr()

<script>
    //concat()   连接一个或多个字符串
    //slice()/substring()/substr()  截取子字符串
    var str = "hello ";
    var str1 = "world";
    var result = str.concat(str1);
    var result1 = str.concat(str1,\'!\');
    console.log(result);   // "hello world"
    console.log(result1);   // "hello world!"
    /*  
    **    slice()、substring()、substr()的2个参数都为正数的情况:
    **    slice(startIndex,endIndex)    取值位置从startIndex开始,一直取到endIndex-1结束
    **    substring(startIndex,endIndex)  取值位置从startIndex开始,一直取到endIndex-1结束
    **    substr(startIndex,number)   取值位置从startIndex开始,一直取到number个之后结束
    */
    var result2 = str1.slice(1,3);  
    var result3 = str1.substring(1,3);
    var result4 = str1.substr(1,3);
    console.log(result2);   //or
    console.log(result3);   //or
    console.log(result4);   //orl
    /* 
    **    当以上方法只有1个参数的情况:
    **    slice(startIndex)/substr(startIndex)/substring(startIndex)            
    **    表示取值从startIndex开始一直取到字符串末尾
    */
    var result5 = str1.slice(1);
    var result6 = str1.substring(1);
    var result7 = str1.substr(1);
    console.log(result5);  // orld
    console.log(result6);  // orld
    console.log(result7);  // orld
    /*  
    **    slice()、substring()、substr()的2个参数存在负数的情况:
    **    slice(startIndex,endIndex)     将负值与字符串的长度相加
    **    substring(startIndex,endIndex)   把所有负值参数都转换为0
    **    substr(startIndex,number)  将负的第一个参数加上字符串的长度,而将负的第二个参数转换为0
    */
    var res1 = str1.slice(-1);   //str1.slice(4)
    var res2 = str1.substring(-1);  //str1.substring(0)
    var res3 = str1.substr(-1);  //str1.substr(4)
    console.log(res1);  // d
    console.log(res2);  // world
    console.log(res3); // d
    var res4 = str1.slice(1,-2);  //str1.slice(1,3)
    var res5 = str1.substring(1,-2); //str1.substring(1,0)
    var res6 = str1.substr(1,-2);  //str1.substr(1,0)
    console.log(res4);  //or
    console.log(res5);  //w
    console.log(res6);  //\'\',没有取到任何字符
</script>

3、字符串位置方法

1)indexOf()

2)lastIndexOf()

<script>
    //indexOf()、lastIndexOf()查找某个字符串是否存在;存在返回第一个被查找到的索引号,若不存在返回-1
    var str = "today is a very nice day!";
    var res1 = str.indexOf(\'y\');
    console.log(res1);  // 4
    var res2 = str.lastIndexOf(\'y\');
    console.log(res2); // 23
</script>
<script>
    //循环输出某个字符下标索引组成的数组
    var str = "today is a very nice day!";
    var positionIndex = str.indexOf(\'y\');
    var indexArr = [];
    while(positionIndex > -1){
        indexArr.push(positionIndex);
        positionIndex = str.indexOf(\'y\',positionIndex + 1);   //从当前索引的下一个索引开始查找
    }
    console.log(indexArr);  //[4, 14, 23]
</script>

 4、trim()方法

1)trim()方法   删除前置及后缀的所有空格

2)trimLeft()、trimRight()  [ps:部分浏览器支持]

trimLeft()  删除字符串开头的所有空格

trimRight()  删除字符串末尾的所有空格

<script>
    //trim()、trimLeft()、trimRight()  
    var str = \'  hello world!  \';
    var result = str.trim();
    var result1 = str.trimLeft();
    var result2 = str.trimRight();
    console.log(result);  // \'hello world!\'
    console.log(result1);  //\'hello world!  \'
    console.log(result2);  // \'  hello world!\'
</script>

5、字符串大小写转换方法

1)toUpperCase()

2)toLowerCase()

3)toLocaleUpperCase()

4)toLocaleLowerCase()

<script>
    //toUpperCase()、toLowerCase()、toLocaleUpperCase()、toLocaleLowerCase()
    var str = \'hello\';
    var res1 = str.toUpperCase();
    var res2 = str.toLocaleUpperCase();
    console.log(res1);  //\'HELLO\'
    console.log(res2); //\'HELLO\'
    var str1 = \'WORLD\';
    var res3 = str1.toLowerCase();
    var res4 = str1.toLocaleLowerCase();
    console.log(res3);  //\'world\'
    console.log(res4);  //\'world\'
</script>

6、字符串的模式匹配方法  match()/search()/replace()

1)match()

<script>
    //match()  参数可以是1个正则表达式或者RegExp对象
    var str = \'establish system of company\';
    var pattern1 = /[a]/;   //定义正则的第1种方式
    var pattern2 = new RegExp(\'[a]\');   //定义正则的第2种方式
    var res = str.match(pattern1);
    console.log(res);  // ["a", index: 3, input: "establish system of company", groups: undefined]
    console.log(res.index);  //3
    var res1 = str.match(pattern2);
    console.log(res1);  // ["a", index: 3, input: "establish system of company", groups: undefined]
    console.log(res1[0]);   // "a"
</script>

 2)search()

<script>
    /*  search()  
    **    参数可以是字符串,也可以是正则表达式
    **    返回匹配到的索引号,若未匹配成功,返回-1
    */
    var str = \'establish system of company\';
    var res1 = str.search(\'li\');
    var res2 = str.search(/co/);
    var res3 = str.search(new RegExp(\'pan\'));
    console.log(res1);  //5
    console.log(res2);  //20
    console.log(res3);  //23
</script>

 3)replace()

<script>
    /*  replace()  
    **    第1个参数可以是字符串,也可以是正则表达式;第2个参数可以是一个字符串或一个函数
    */
    var str = \'establish list\';
    var res1 = str.replace(\'li\',\'LI\');
    var res2 = str.replace(/li/g,\'Love\');
    var res3 = str.replace(new RegExp(\'s\',\'g\'),\'LUCK\');
    console.log(res1);  //estabLIsh list
    console.log(res2);  //estabLovesh Lovest
    console.log(res3);  //eLUCKtabliLUCKh liLUCKt
</script>

 7、localeCompare()

<script>
    /*  localeCompare()
    **    比较2个字符串位置先后顺序
    */
    var str = \'luck\';
    var res1 = str.localeCompare(\'apple\');
    var res2 = str.localeCompare(\'wolf\');
    var res3 = str.localeCompare(\'luck\');
    console.log(res1);   //1
    console.log(res2);  //-1
    console.log(res3);  //0
</script>

8、fromCharCode()

<script>
    /*  fromCharCode()
    **    将字符编码转换为字符String.fromCharCode()
    */
    console.log(String.fromCharCode(\'101\'));  //e
    console.log(String.fromCharCode(\'111\'));  //o
    console.log(String.fromCharCode(\'121\'));  //y
</script>

以上是关于JavaScript高级程序设计 ———— String类型的主要内容,如果未能解决你的问题,请参考以下文章

《JavaScript高级程序设计》啥时候出版

JavaScript如何对后台utf8编码的字符串解码?

《Javascript高级程序设计》阅读记录:第五章 上

JavaScript高级 引用类型《JavaScript高级程序设计(第三版)》

《JavaScript高级程序设计》啥时候出版

JavaScript高级 函数表达式 《JavaScript高级程序设计(第三版)》