从零开始学前端

JS内置对象:String字符

2017-01-19  本文已影响24人  越IT

一、String 字符串对象

定义字符串的方法就是直接赋值。
比如:

var mystr = "I love JavaScript!"

定义mystr字符串后,我们就可以访问它的属性和方法。

1/访问字符串对象的属性length:

stringObject.length; //返回该字符串的长度。

【例如】

var mystr="Hello World!";
var myl=mystr.length;

以上代码执行后,myl 的值将是:12

2/访问字符串对象的大小写变化:toUpperCase()与toLowerCase()

【语法】:

stringObject.toUpperCase()

【功能】:把字符串转换为大写。

【语法】:

stringObject.toLowerCase()

【功能】:把字符串转换为小写。

【案例】:使用 String 对象的 toUpperCase() 方法来将字符串小写字母转换为大写:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>string对象 </title>
  <script type="text/javascript">
    var message="I love JavaScript!";
    var mychar= message.toUpperCase();
    document.write("字符串为:"+mychar+"<br>");
</script>
</head>
<body>
</body>
</html>

【备注】
如果是变小写,则 message.toUpperCase()替换为message.toLowerCase();

二、返回指定位置的字符charAt()

方法可返回指定位置的字符。返回的字符是长度为 1 的字符串。

【语法】:

stringObject.charAt(index)

【参数说明】:
index:必需。表示字符串中某个位置的数字,即字符在字符串中的下标。

【注意】:
1:字符串中第一个字符的下标是 0。最后一个字符的下标为字符串长度减一(string.length-1)。
2:如果参数 index 不在 0 与 string.length-1 之间,该方法将返回一个空字符串。
3:一个空格也算一个字符。

【案例】返回最后一个字符。

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>string对象 </title>
  <script type="text/javascript">
  var mystr="I love JavaScript!"
  document.write(mystr.charAt(mystr.length-1));
</script>
</head>
<body>
</body>
</html>

三、返回指定的字符串首次出现的位置indexOf()

indexOf()方法可返回某个指定的字符串值在字符串中首次出现的位置。

【语法】:

stringObject.indexOf(substring, startpos)

【参数说明】:
substring:必需。规定需检索的字符串值。
startpos:可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是0到stringObjectlength-1.如果省略该参数,则将从字符串的首字符开始检索。

【语法说明】:
1.该方法将从头到尾地检索字符串 stringObject,看它是否含有子串 substring。
2.可选参数,从stringObject的startpos位置开始查找substring,如果没有此参数将从stringObject的开始位置查找。
3.如果找到一个 substring,则返回 substring 的第一次出现的位置。stringObject 中的字符位置是从 0 开始的。

【注意】:
1:indexOf() 方法区分大小写。
2:如果要检索的字符串值没有出现,则该方法返回 -1。

【案例】使用indexOf()方法,检索第二个字符o出现的位置。

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>string对象 </title>
<script type="text/javascript">
  var mystr="Hello World!"
  document.write(mystr.indexOf('o',mystr.indexOf('o')+1));
</script>
</head>
<body>
</body>
</html>

【结果】为7

四、掌握字符串对象的方法:split()和replace()

- 1/字符串分割split()

split() 方法将字符串分割为字符串数组,并返回此数组。
【语法】:

stringObject.split(separator,limit)

【参数说明】:
separator 必需。从该参数指定的地方分割stringObject。
limit 可选参数,分割的次数,如设置该参数,返回的子串不会多于这个参数指定的数组,如果无此参数为不限制次数。

【注意】
如果把空字符串("")用作separator,那么stringObject中的每个字符之间都会被分割。

【案例】:
运用split()方法,完成以下任务,并输出:1.以字符"-"分隔字符串对象mystr。2. 将字符串对象mystr每个字符分割。3. 将字符串对象mystr分割成字符,分割3次。

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<script type="text/javascript">
var mystr="86-010-85468578";
document.write(mystr.split("-")+ "<br />");//1.以字符"-"分隔字符串对象mystr
document.write(mystr.split("")+ "<br />");//2. 将字符串对象mystr每个字符分割。
document.write(mystr.split("-",3));//3. 将字符串对象mystr分割成字符,分割3次。
</script>
</head>
<body>
</body>
</html>

【结果】



【案例】:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>string综合应用</title>
</head>
<body>
  <script>
    var str="tom/how/are/you/doing/today";
    var arr=str.split("/");
    console.log(arr);
  </script>
</body>
</html>

【结果】:


2/replace替换

【语法】:

stringObject.replace(regexp/substr,replacement)

【功能】:
在字符串中用一些字符替换另一些字符,或替换一个与正则式匹配的子串。

【返回值】:string

【参数】:
regexp:必需。规定子字符串或要替换的模式的RegExp对象。
replacement:必需。一个字符串值。

【案例】:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>string综合应用</title>
</head>
<body>
  <script>
     //替换
     var tel="010-62971268,400-100-9098,010-86789889";
     var newTel=tel.replace(",","  ");
     console.log(newTel);
  </script>
</body>
</html>

【结果】:


五、提取字符串:slice()、substring()、substr()

- 1/提取字符串slice()

【语法】:

stringObject.slice(start,end)

【功能】:
截取子字符串。

【参数说明】:
1.start:必需,指定子字符串的开始位置。
2.end:可选,表示子字符串到哪里结束,
若end本身不在截取范围之内(即end-1),省略时截取至字符串的末尾。
3.当为负数时,其值为字符串长度+该负数

【案例】:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<script>
    var str="hello world";
    //截取orl
    console.log(str.slice(7,10));
</script>
</body>
</html>

-2/ 提取字符串substring

substring() 方法用于提取字符串中介于两个指定下标之间的字符。

【语法】:

stringObject.substring(startPos,stopPos)

startPos 必需。一个非负的整数,开始位置。
stopPos 可选。一个非负的整数,结束位置,如果省略该参数,那么返回的子串会一直到字符串对象的结尾。

说明:
console.log(str.substring(-7,5));//当第一个为负值时直接等同于0,即(0,5)
console.log(str.substring(2,-5));//当第二个数值比第一个小的时候,直接调整顺序为小到大截取,即(0,2)

【注意】:
1:返回的内容是从 start开始(包含start位置的字符)到 stop-1 处的所有字符,其长度为 stop 减start。
2:如果参数 start 与 stop 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。
3:如果 start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数。

【案例】:
运用substring()方法,完成子字符串Hello World!的提取:1.从字符对象mystr中提取World!子字符串。2. 从字符对象mystr中提取Hello子字符串。

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>string对象</title>
<script type="text/javascript">
var mystr="Hello World!"
document.write(mystr.substring(6)+ "<br />");
document.write(mystr.substring(0,5));
</script>
</head>
<body>
</body>
</html>

【结果】


★【辨析】substring()与slice()

它俩语法及功能完全一样。
区别在于:
1.当substring()参数为负数时,自动将参数转换为0.
2.substring()会将较小的数作为开始位置,将较大的数作为结束位置。

- 3/提取指定数目的字符substr()

substr() 方法从字符串中提取从 startPos位置开始的指定数目的字符串。

【语法】:

stringObject.substr(startPos,length)

【参数说明】
startPos 必需。要提取的子串的起始位置。必须是数值。
length 可选。提取字符串的长度。如果省略,返回从stringObject的开始位置startPos到stringObject的结尾的字符。

【注意】
如果参数startPos是负数,从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。

如果startPos为负数且绝对值大于字符串长度,startPos为0。

【案例】

运用substr()方法,完成以下任务:1.提取字符world!。2.提取字符Hello。

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>substr()</title>
<script type="text/javascript">
var mystr="Hello World!";
document.write( mystr.substr(6)+ "<br />");
document.write(mystr.substr(0,5));
</script>
</head>
<body>
</body>
</html>

★综合应用1

掌握字符串方法的综合应用:
编写js函数,用于获得输入参数的后缀名,如输入abc.txt,返回.txt

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>string综合应用</title>
</head>
<body>
  <script>
      //获取扩展名
      var url="http://baidu.com/index.txt";
      function getFileFormat(url){
        //获取.在url中出现的位置
        var pos=url.lastIndexOf(".");
        return url.substr(pos);
      }
      var formatName=getFileFormat(url);
      var picForamt=getFileFormat("1231434.jpg");
      console.log(formatName);
      console.log(picForamt);
  </script>
</body>
</html>

【结果】:

★综合应用2

将border-left-color 转化为borderLeftColor驼峰形式

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>border-left-color转化为borderLeftColor</title>
</head>
<body>
  <script>
    //border-left-color  borderLeftColor//驼峰形式
    function camelback(str){
        //通过-这个分隔符将str拆分成数组
        var arr=str.split("-"),newStr=arr[0];
        //console.log(arr);//["border","left","color"]
        //newStr="border";
        for(var i=1,len=arr.length;i<len;i++){
            var word=arr[i];
            //console.log(world);
            //将每一个单词的首字母转换为大写,连接剩余字符
            newStr+=word.charAt(0).toUpperCase()+word.substr(1);
            //console.log(newStr);
            //newStr=borderLeftColor
        }
        return newStr;

    }
    var camelFormat=camelback("border-left-color");
    console.log(camelFormat);
  </script>
</body>
</html>

end.
本笔记整理自慕课网

上一篇下一篇

猜你喜欢

热点阅读