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 相关文章推荐
用js实现的自定义的对话框的实现代码
Mar 21 Javascript
jQuery图片滚动图片的效果(另类实现)
Jun 02 Javascript
JavaScript四种调用模式和this示例介绍
Jan 02 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
Jan 14 Javascript
js读取cookie方法总结
Oct 31 Javascript
JS实现的N多简单无缝滚动代码(包含图文效果)
Nov 06 Javascript
JavaScript判断对象是否为数组
Dec 22 Javascript
基于Phantomjs生成PDF的实现方法
Nov 07 Javascript
Input文本框随着输入内容多少自动延伸的实现
Feb 15 Javascript
微信小程序 开发MAP(地图)实例详解
Jun 27 Javascript
layui实现把数据表格时间戳转换为时间格式的例子
Sep 12 Javascript
编写v-for循环的技巧汇总
Dec 01 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
ThinkPHP中自定义目录结构的设置方法
2014/08/15 PHP
跨浏览器PHP下载文件名中的中文乱码问题解决方法
2015/03/05 PHP
使用JavaScript创建新样式表和新样式规则
2016/06/14 PHP
php实现用户登陆简单实例
2017/04/04 PHP
兼容IE/Firefox/Opera/Safari的检测页面装载完毕的脚本Ext.onReady的实现
2009/07/14 Javascript
Firefox+FireBug使JQuery的学习更加轻松愉快
2010/01/01 Javascript
jquery中ajax学习笔记一
2011/10/16 Javascript
js实现动态改变字体大小代码
2014/01/02 Javascript
JS 弹出层 定位至屏幕居中示例
2014/05/21 Javascript
JS+DIV+CSS排版布局实现美观的选项卡效果
2015/10/10 Javascript
Bootstrap安装环境配置教程分享
2016/05/27 Javascript
AngularJS中$apply方法和$watch方法用法总结
2016/12/13 Javascript
jQuery实现别踩白块儿网页版小游戏
2017/01/18 Javascript
Redux 和 Mobx的选择问题:让你不再困惑!
2017/09/18 Javascript
vue实现页面加载动画效果
2017/09/19 Javascript
Angularjs使用过滤器完成排序功能
2017/09/20 Javascript
微信小程序iBeacon测距及稳定程序的实现解析
2019/07/31 Javascript
微信小程序的授权实现过程解析
2019/08/02 Javascript
vuex state中的数组变化监听实例
2019/11/06 Javascript
vue+vant 上传图片需要注意的地方
2021/01/03 Vue.js
Pyramid将models.py文件的内容分布到多个文件的方法
2013/11/27 Python
Python下rrdtool模块的基本使用方法
2015/11/13 Python
Python进阶-函数默认参数(详解)
2017/05/18 Python
利用django如何解析用户上传的excel文件
2017/07/24 Python
python3实现跳一跳点击跳跃
2018/01/08 Python
Python实现对字典分别按键(key)和值(value)进行排序的方法分析
2018/12/19 Python
Python学习笔记之视频人脸检测识别实例教程
2019/03/06 Python
Python3.6中Twisted模块安装的问题与解决
2019/04/15 Python
Python selenium模块实现定位过程解析
2020/07/09 Python
简单的Python人脸识别系统
2020/07/14 Python
最好的意大利皮夹克:D’Arienzo
2018/12/04 全球购物
党委书记岗位职责
2013/11/24 职场文书
希特勒经典演讲稿
2014/05/19 职场文书
迁徙的鸟观后感
2015/06/09 职场文书
2016习总书记系列重要讲话心得体会
2016/01/15 职场文书
SQL SERVER实现连接与合并查询
2022/02/24 SQL Server