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 相关文章推荐
dojo 之基础篇
Mar 24 Javascript
js 目录列举函数
Nov 06 Javascript
Javascript实现关联数据(Linked Data)查询及注意细节
Feb 22 Javascript
jquery实现点击label的同时触发文本框点击事件的方法
Jun 05 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
Oct 17 Javascript
jquery实现鼠标悬浮停止轮播特效
Aug 20 Javascript
详解javascript传统方法实现异步校验
Jan 22 Javascript
JavaScript 数组- Array的方法总结(推荐)
Jul 21 Javascript
微信小程序 页面传参实例详解
Nov 16 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(1)
Feb 20 Javascript
简述pm2常用命令集合及配置文件说明
May 30 Javascript
如何编写一个 Webpack Loader的实现
Oct 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
Php中用PDO查询Mysql来避免SQL注入风险的方法
2013/04/25 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
2015/11/04 PHP
PHP实现合并两个排序链表的方法
2018/01/19 PHP
Laravel6.18.19如何优雅的切换发件账户
2020/06/14 PHP
jquery api参考 visualjquery 中国线路 速度快
2007/11/30 Javascript
捕获浏览器关闭、刷新事件不同情况下的处理方法
2013/06/02 Javascript
JQuery判断子iframe何时加载完成解决方案
2013/08/20 Javascript
Javascript 颜色渐变效果的实现代码
2013/10/01 Javascript
JS按回车键实现登录的方法
2014/08/25 Javascript
jQuery中ajax的post()方法用法实例
2014/12/26 Javascript
简介JavaScript中Boolean.toSource()方法的使用
2015/06/05 Javascript
使用JavaScript判断手机浏览器是横屏还是竖屏问题
2016/08/02 Javascript
DataTables添加额外的查询参数和删除columns等无用参数实例
2017/07/04 Javascript
详解angularjs popup-table 弹出框表格指令
2017/09/20 Javascript
vue2.0 实现页面导航提示引导的方法
2018/03/13 Javascript
对angularJs中controller控制器scope父子集作用域的实例讲解
2018/10/08 Javascript
使用Vue调取接口,并渲染数据的示例代码
2019/10/28 Javascript
使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详解
2020/02/06 NodeJs
在Python中处理字符串之isdigit()方法的使用
2015/05/18 Python
获取python的list中含有重复值的index方法
2018/06/27 Python
Python实现的旋转数组功能算法示例
2019/02/23 Python
Python文件操作函数用法实例详解
2019/12/24 Python
python 实现Flask中返回图片流给前端展示
2020/01/09 Python
Python递归及尾递归优化操作实例分析
2020/02/01 Python
python ETL工具 pyetl
2020/06/07 Python
python3爬虫中引用Queue的实例讲解
2020/11/24 Python
总结html5自定义属性有哪些
2020/04/01 HTML / CSS
国际贸易专业个人鉴定
2014/02/22 职场文书
消防工作实施方案
2014/06/09 职场文书
2014矛盾纠纷排查调处工作总结
2014/12/09 职场文书
教师辞职书范文
2015/02/26 职场文书
初中班级口号霸气押韵
2015/12/24 职场文书
《法国号》教学反思
2016/02/22 职场文书
2016年小学“公民道德宣传日”活动总结
2016/04/01 职场文书
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
2021/03/29 Python
Java图书管理系统,课程设计必用(源码+文档)
2021/06/30 Java/Android