Javascript基础教程之数据类型 (字符串 String)


Posted in Javascript onJanuary 18, 2015

一.字符串

var language = "javascript";

var language = 'javascript';

字符串可以使用双引号和单引号,根据个人爱好而定。

字符串具有length属性,可以返回变量中字符串的个数。

var test1 = "teacher" ;

    document.write(test1.length);

//输出test1的字符串个数:7

反之,想获取指定位置的字符,可以使用charAt()函数(第一个字符为0,第二个字符为1,依次类推)

 var test1 = "teacher" ;

    document.write(test1.charAt(1));

//运行结果为:e ,

如果想取得变量中的字符串,可以采用slice(),substring()或者substr()函数。

其中,substring()和slice()都接受两个参数

    var test1 = "teacher" ;

    document.write(test1.substring(1)+"<br>");// 输出eacher

    document.write(test1.substring(1,4)+"<br>"); //输出eac

    document.write(test1.slice(1,4)+"<br>"); //输出eac

    document.write(test1.slice(4)+"<br>"); //输出her

    document.write(test1 + "<br>");//完整字符串

 从以上内容看出,substring()和slice()都不改变字符串内容,只返回字符串的内容。

substing()和slice()的区别主要是对负数的处理不同。

负数参数对于slice()而言,从字符串末尾往前计数,对于substring()来说,则是忽略负数,从0开始处理,并将两个参数中较小的数字作为起始位,较大的作为结束位。

例如substring(2,-3)等同于substing(2,0),也就是等同于substring(0,2)。

   var test1 = "teacher" ;

    document.write(test1.substring(2,-3)+"<br>"); //te

    document.write(test1.substring(2,0)+"<br>"); //te

    document.write(test1.substring(0,2)+"<br>"); //te

    document.write(test1.slice(2,-3)+"<br>"); //ac

    document.write(test1 + "<br>"); //teacher

 substring()和substr()的区别,举例说明。

    var tt,ss ;

    var s = "hellobeijing";

    tt = s.substring(2,8)+"<br>";

    ss = s.substr(2,8);

    document.write(tt);//输出:llobeij 输出下标2到下标8之间的字符

    document.write(ss); //输出:llobeiji (输出下标2后的8个字符)

 对于用法,另一博友有更多实例(地址)

在搜索字符串上,Javascript提供了indexof()和lastindexof()两个函数。

 var s = "woaibeijing";

    dd = s.indexOf("e")+"<br>";//从前往后

    ee = s.indexOf("e",3)+"<br>";//可选参数,从第几个字符往后查找

    ff = s.lastIndexOf("e")+"<br>";//从后往前

    gg = s.lastIndexOf("e",3)+"<br>"; //可选参数,从第几个字符往前查找

    hh = s.lastIndexOf("H")+"<br>";

    document.write(dd);

    document.write(ff);

    document.write(ee);

    document.write(gg);

    document.write(hh);

另外,indexof()和lastindexof()的用法推荐查看这篇文章。https://3water.com/article/44921.htm

JS中的indexOf和lastIndexOf是处理字符串的一个非常好用的函数,下面对它们的定义、用法、注意事项以及使用建议分别作介绍。

1、strObj.indexOf(subString[, startIndex])

功能:返回源字符串内第一次出现指定子字符串的首个字符在源字符串中的索引值(源字符串内第n个字符的索引值为n-1),是整数。

参数含义:

strObj是源字符串,必选项。

subString是在源字符串对象中查找的子字符串,必选项。

startIndex是开始索引值,indexOf函数是从源字符串的索引值为startIndex的字符(即第startIndex+1个字符)开始查找,可选项。省略时,从源字符串索引值为0的字符(即第1个字符)开始查找。

实例分析:

用法1(不指定startIndex值):var i="huoshandao.com".indexOfOf("a"):则i=5
                                               相当于var i="huoshandao.com".indexOf("a",0)
用法2(指定startIndex值):var i="huoshandao.com".indexOf("a",6):则i=8
提示:可以用alert(i);语句测试结果,以下例子也一样。

注意事项

1)strObj既可以是字符串,也可以是字符串变量。
     [例子]
     strObj为字符串:var i="huoshandao.com".indexOf("."):
     strObj为字符串变量:var str="huoshandao.com";var i=str.indexOf(".");
2)subString不能为空字符串,如果为空字符串,返回值为0,但可以是空格。
     [例子]
     subString为空字符串:var i="huo shan dao".indexOf(""):则i=0
     subString为空格字符串:var i="huo shan dao".indexOf(" "):则i=3
3)第1个字符的startIndex值是0,是最小索引值;第2个字符的startIndex值是1;最后一个字符的startIndex值则是源字符串长度减1,是最大索引值。
4)如果没有找到子字符串,则返回 -1。
     [例子]
     var i="huoshandao.com".indexOf("huosan"):则i=-1
5)如果startIndex是负数,则相当于startIndex等于0的情况。如果它大于最大索引值,则相当于startIndex等于最大索引值的情况。
    [例子]
     startIndex为负数: var i="huoshandao.com".indexOf(".",-3);则i=10
                                   与var i="huoshandao.com".indexOf(".",0);结果一样
     startIndex大于等于字符串长度:var i="huoshandao.com_".indexOf("_",16);则i=-1
                                                       与var i="huoshandao.com_".indexOf("_",14);i=14

2、strObj.lastIndexOf(subString[, startIndex])

indexOf 函数是从左向右查找,但实际应用中我们有时想得到从右向左出现某个字符或字符串的首个字符索引值,针对这种情况,JS给出另外一个函数 lastIndexOf来解决这个问题,使用方法和indexOf相似,只是它从右向左查找而已,具体就不再重复,简单举几个例子,和indexOf作比 较:

例1:var i="huo.shan.dao.com".lastIndexOf(".");则i=12而var i="huo.shan.dao.com".indexOf(".");的i=3
例2:var i="huoshandao.com_".lastIndexOf("_",16);则i=14而var i="huoshandao.com_".indexOf("_",16);则i=-1

3、使用建议

为了避免出乎意料的结果,除非有特殊用途,建议遵循以下原则:

1、startIndex为非负数,并且不大于最大索引值。如果startIndex是变量,要先判断其值是否在这个范围内。
2、如果子字符串subString是变量的话,要先判断其是否为空再使用indexOf或lastIndexOf函数。
3、输入子字符串时要特别注意全角字符和半角字符的区别。
4、注意indexOf和lastIndexOf里面的大小写,JS对大小写非常敏感。建议用Dreamweaver编程,如果函数名大小写写错的话,函数颜色是黑色,写对的话则会变成另外一种颜色。

Javascript 相关文章推荐
修改好的jquery滚动字幕效果实现代码
Jun 22 Javascript
对jQuery的事件绑定的一些思考(补充)
Apr 20 Javascript
JavaScript中几个重要的属性(this、constructor、prototype)介绍
May 19 Javascript
一个php+js实时显示时间问题
Oct 12 Javascript
如何利用Promises编写更优雅的JavaScript代码
May 17 Javascript
js改变透明度实现轮播图的算法
Aug 24 Javascript
jQuery根据ID、CLASS、等获取对象的实例
Dec 04 Javascript
很棒的vue弹窗组件
May 24 Javascript
Material(包括Material Icon)在Angular2中的使用详解
Feb 11 Javascript
JavaScript中var的重要性实例分析
Jul 09 Javascript
js点击事件的执行过程实例分析【冒泡与捕获】
Apr 11 Javascript
javascript实现文字跑马灯效果
Jun 18 Javascript
Javascript基础教程之变量
Jan 18 #Javascript
Javascript基础教程之JavaScript语法
Jan 18 #Javascript
js简单抽奖代码
Jan 16 #Javascript
JS取得绝对路径的实现代码
Jan 16 #Javascript
jQuery中scrollLeft()方法用法实例
Jan 16 #Javascript
jQuery中scrollTop()方法用法实例
Jan 16 #Javascript
jQuery中position()方法用法实例
Jan 16 #Javascript
You might like
Uchome1.2 1.5 代码学习 common.php
2009/04/24 PHP
解析wamp5下虚拟机配置文档
2013/06/27 PHP
C#使用PHP服务端的Web Service通信实例
2014/04/08 PHP
一键生成各种尺寸Icon的php脚本(实例)
2017/02/08 PHP
PHP实现限制IP访问及提交次数的方法详解
2017/07/17 PHP
firefox中JS读取XML文件
2006/12/21 Javascript
jQuery 性能优化指南(2)
2009/05/21 Javascript
Javascript图像处理—平滑处理实现原理
2012/12/28 Javascript
解决json日期格式问题的3种方法
2014/02/02 Javascript
jQuery判断div随滚动条滚动到一定位置后停止
2014/04/02 Javascript
JS中实现简单Formatter函数示例代码
2014/08/19 Javascript
调试JavaScript中正则表达式中遇到的问题
2015/01/27 Javascript
理解JavaScript事件对象
2016/01/25 Javascript
jQuery ajax应用总结
2016/06/02 Javascript
springMVC结合AjaxForm上传文件
2016/07/12 Javascript
JS查找数组中重复元素的方法详解
2017/06/14 Javascript
js经验分享 JavaScript反调试技巧
2018/03/10 Javascript
详解在Node.js中发起HTTP请求的5种方法
2019/01/10 Javascript
vue插件mescroll.js实现移动端上拉加载和下拉刷新
2019/03/07 Javascript
微信小程序服务器日期格式化问题
2020/01/07 Javascript
详解用js代码触发dom事件的实现方案
2020/06/10 Javascript
如何通过JS实现日历简单算法
2020/10/14 Javascript
[00:30]明星选手化身超级英雄!2018DOTA2亚洲邀请赛全明星赛来临!
2018/04/06 DOTA
Python中的Classes和Metaclasses详解
2015/04/02 Python
Python中文件操作简明介绍
2015/04/13 Python
python中类和实例如何绑定属性与方法示例详解
2017/08/18 Python
python使用正则筛选信用卡
2019/01/27 Python
Python %r和%s区别代码实例解析
2020/04/03 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
2020/04/28 Python
Pytorch实现WGAN用于动漫头像生成
2021/03/04 Python
Ray-Ban雷朋瑞典官方网站:全球领先的太阳眼镜品牌
2019/08/22 全球购物
财务会计人员求职的自我评价
2014/01/13 职场文书
幼儿园门卫岗位职责范本
2014/07/02 职场文书
社区敬老月活动总结
2015/05/07 职场文书
欢送会主持词
2015/07/01 职场文书
spring cloud eureka 服务启动失败的原因分析及解决方法
2022/03/17 Java/Android